这个问题在这里已有答案:
所以我试图创建新的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,我打赌'?'有问题,但如何以其他方式做到这一点?
1 回答
你可以通过简单的字符串连接来实现 .
我相信PreparedStatement中的问号是参数而不是表名 .