gpt4 book ai didi

java - 无法使用 preparedStatement 创建表

转载 作者:行者123 更新时间:2023-11-29 02:53:03 24 4
gpt4 key购买 nike

我无法使用 preparedStatement 在数据库 (mySQL) 中创建表,并尝试使用 preparedStatement.setInteger() 输入 future 表的名称:

static String queryCreateTable = "CREATE TABLE ?" +
"(ID INTEGER not NULL ," +
"BRAND VARCHAR(40)," +
"MODEL VARCHAR(40)," +
"YEAR INTEGER not NULL," +
"NOVELTY BINARY," +
"PRIMARY KEY ( ID ))";

然后我尝试在用户输入表名后构造并调用语句:

newNameOfTable = JOptionPane.showInputDialog("Connected for saving data. " +
"Input name of new table:");

pStatement = connection.prepareStatement(queryCreateTable);
pStatement.setString(1, newNameOfTable);
pStatement.executeUpdate();

如果我尝试在不输入名称的情况下执行它(例如常量字符串:“CREATE TABLE newtable (...)”,但我需要输入名称,它会很好地工作..

最佳答案

您必须在读取表名后格式化字符串,例如:

static String queryCreateTable = "CREATE TABLE {0}" +
"(ID INTEGER not NULL ," +
"BRAND VARCHAR(40)," +
"MODEL VARCHAR(40)," +
"YEAR INTEGER not NULL," +
"NOVELTY BINARY," +
"PRIMARY KEY ( ID ))";

然后像这样创建:

newNameOfTable = JOptionPane.showInputDialog("Connected for saving data. " +
"Input name of new table:");

statement = connection.createStatement();
statement.execute(MessageFormat.format(queryCreateTable, newNameOfTable));

关于java - 无法使用 preparedStatement 创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33614446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com