簡體   English   中英

從Java更新sqlite數據庫

[英]Updating a sqlite database from Java

我正在嘗試從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”。

編輯:確實,我發現我不能在同一查詢中放入兩個集合。 但是,我不知道如何將查詢分成准備好的語句。 有什么幫助嗎?

創建准備好的語句是方法。 我會這樣修復您的代碼(主要錯誤是沒有逗號,並且在sql語句中兩次使用set):

try 
  {
  int saveSpeed = gui.saveSpeedInt - gui.saveSpeedTimer;
  String query2;
  int answer = 1;
  if(gui.textAnswerQ.equals(gui.saveAnswer.getText()) || gui.textAnswerToFQ.equals(gui.saveAnswer.getText()) || gui.SanswerTextField.getText().equals(gui.saveAnswer.getText())){
    answer = 1;
  }
  else{
    answer = 0;
  }
  query2 = "update StudentsQuestions set Time = ?, Answer = ? where UserName = ? and Question = ?";
  PreparedStatement pst2 = gui.connectionUsers.prepareStatement(query2);
  pst2.setInt(1, saveSpeed);
  pst2.setInt(2, answer);
  pst2.setString(3, gui.saveUser.getText());
  pst2.setString(4, gui.question.getText());
  pst2.execute();
  pst2.close();
 }

有關更多信息,請參見: 使用SQLite Prepared語句基礎

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM