我在调用一种方法来计算新的贷方余额后更新我的数据库时遇到问题。
[SQLITE_ERROR] SQL 错误或缺少数据库(靠近“'18.0'”:语法错误)
这是我的查询:
try {
String query = "UPDATE cards SET cardBalance '"+newCreditBalance+"' WHERE cardID = idList.getValue().toString";
PreparedStatement pst = connection.prepareStatement(query);
我是否对“+newCreditBalance+”有任何错误?它在 java 和我的数据库中都应该是 double 值。
最佳答案
语法错误是因为您缺少等号:"UPDATE cards SET cardBalance="+newCreditBalance
。
但是,使用像这样的字符串连接将值放入 SQL 查询或语句中是一个非常糟糕的主意(因为 SQL injection 的危险)。相反,将这样的字符串传递给 prepareStatement(): UPDATE cards SET cardBalance = ? WHERE cardID = ?"
然后在真正执行查询之前调用相关的setter方法:
pst.setFloat(1, newCreditBalance);
pst.setString(2, idList.getValue().toString);
您还应该为 idList.getValue()
使用正确的类型,但根据您的示例我不知道应该是什么类型。
关于java - Javafx 中的 SqLite 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40010222/