gpt4 book ai didi

Java - 字符串作为新的sql表名称

转载 作者:行者123 更新时间:2023-12-01 09:09:59 26 4
gpt4 key购买 nike

所以我尝试创建新的 SQLite 表,其名称由我的应用程序中创建的字符串设置。字符串是从 int userID 和当前日期(到字符串)创建的

LocalDate date = LocalDate.now();

public void save() {
String db;
db = String.valueOf("uid" + userID + date.toString());
try {
PreparedStatement pst = conn.prepareStatement("CREATE TABLE ?(name TEXT, kcal FLOAT, protein FLOAT, carbs FLOAT, fat FLOAT)");
pst.setString(1, db);
pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}

最终字符串如下所示,例如:uid02016-12-05

不幸的是,我得到了

org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (near "?": syntax error)

并且错误指向我的PreparedStatement,我敢打赌“?”有问题,但是如何以其他方式做到这一点?

最佳答案

您可以通过简单的字符串连接来实现这一点。

String query = "CREATE TABLE " + db + " (name TEXT, kcal FLOAT, protein FLOAT, carbs FLOAT, fat FLOAT)";
PreparedStatement pst = conn.prepareStatement(query);

我相信PreparedStatement中的问号是参数,而不是表名。

关于Java - 字符串作为新的sql表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40979746/

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