【问题标题】:Create MySQL table with Java looks messy [duplicate]用Java创建MySQL表看起来很乱[重复]
【发布时间】:2019-04-18 12:14:39
【问题描述】:

我正在用 Java 创建一个 MySQL 表。我不想要一根大绳子,因为我觉得它看起来很乱。

建表时有这样的情况吗?

            try (final PreparedStatement statement = this.connection.prepareStatement("CREATE TABLE IF NOT EXISTS " + this.table + "(?, ?)")) {
            statement.setString(1, "id TINYINT PRIMARY KEY NOT NULL");
            statement.setString(2, "another_column TINYTEXT NOT NULL");

            statement.execute();

问候

【问题讨论】:

  • 好吧,因为你设置了两次相同的参数,所以它不会起作用。这不起作用,因为您提供的参数将放在引号之间(我什至不认为 JDBC 允许在 PreparedStatement 中进行 DDL 查询)。您需要自己生成查询。
  • 参数仅用于值,不用于 SQL 片段。

标签: java mysql


【解决方案1】:

您不能这样创建表。
使用准备好的语句将 值 传递给占位符和 not 表名或列名。
改为:

PreparedStatement statement = this.connection.prepareStatement(
    "CREATE TABLE IF NOT EXISTS " + this.table + " (" + 
    "id TINYINT PRIMARY KEY NOT NULL, another_column TINYTEXT NOT NULL)"
);
statement.execute();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 2021-09-24
    • 2018-11-14
    • 1970-01-01
    • 2017-05-03
    • 2014-01-08
    • 1970-01-01
    • 2014-12-17
    相关资源
    最近更新 更多