【发布时间】:2016-07-12 12:46:13
【问题描述】:
我正在尝试从 javafx 更新一个 sqlite 数据库。我对我的数据库执行以下查询以更新它:
try
{
int saveSpeed = gui.saveSpeedInt - gui.saveSpeedTimer;
String query2;
if(gui.textAnswerQ.equals(gui.saveAnswer.getText()) || gui.textAnswerToFQ.equals(gui.saveAnswer.getText()) || gui.SanswerTextField.getText().equals(gui.saveAnswer.getText())){
String answer = "1";
query2 = "update StudentsQuestions set Time = '"+saveSpeed+"' set Answer = '"+answer+"' where UserName = '"+gui.saveUser.getText()+"' and Question = '"+gui.question.getText()+"'";
}
else{
String answer = "0";
query2 = "update StudentsQuestions set Time = '"+saveSpeed+"' set Answer = '"+answer+"' where UserName = '"+gui.saveUser.getText()+"' and Question = '"+gui.question.getText()+"'";
}
PreparedStatement pst2 = gui.connectionUsers.prepareStatement(query2);
pst2.execute();
pst2.close();
}
当我一直执行更新时,答案字段似乎是空的。我在这里做错了吗? Aswer 是 StudentsQuestions 表中的一个字段,类型为 INTEGER,其模式为“Answer INTEGER”。
编辑:确实,我发现我不能将两个集合放在同一个查询中。但是我不知道如何将我的查询分成准备好的语句。有什么帮助吗?
【问题讨论】:
-
堆栈跟踪中是否有任何错误?
-
if语句的前两个条件相同
-
@cricket_007 感谢您的通知。 Jibbo 不,我没有收到任何我的数据库正常填充但在字段中以 NULL 回答的内容!
-
无论如何,你应该使用PreparedStatement,而不是原始的sql查询来防止SQL注入
-
我对 sqlite 有点陌生,所以你能给我一个如何创建准备好的语句的例子吗?
标签: java sqlite prepared-statement