所以我试图创建新的SQLite表,其名称由我的应用程序中创建的String设置。字符串是从int userID和curret date(到string)
创建的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();
}
}
Finnal字符串如下所示:uid02016-12-05
不幸的是,我得到了
org.sqlite.SQLiteException:[SQLITE_ERROR] SQL错误或缺少数据库(接近“?”:语法错误)
指向我的PreparedStatement的错误,我打赌'?'有问题,但如何以其他方式做到这一点?
答案 0 :(得分:1)
你可以通过简单的字符串连接来实现。
String query = "CREATE TABLE " + db + " (name TEXT, kcal FLOAT, protein FLOAT, carbs FLOAT, fat FLOAT)";
PreparedStatement pst = conn.prepareStatement(query);
我认为PreparedStatement中的问号是参数而不是表名。