更新语句 - 带有sqlite3的java

时间:2015-06-06 17:21:13

标签: java database sqlite

我的UPDATE语句出现了奇怪的问题。

Connection c = null;
    Statement stmt = null;
    try {
      Class.forName("org.sqlite.JDBC");
      c = DriverManager.getConnection("jdbc:sqlite:project.db");
      c.setAutoCommit(false);

      stmt = c.createStatement();
      String idstring = JOptionPane.showInputDialog("Type stormtroopers's id:");
      int id = Integer.parseInt(idstring);
      String newrank = JOptionPane.showInputDialog("Type stormtrooper's new rank:");
      String sql = "UPDATE stormtrooper SET rank="+newrank+" WHERE id="+id+";";
      stmt.executeUpdate(sql);
      c.commit();
      stmt.close();
      c.close();

              jTextArea1.setText("Updated successfully");  
            } catch ( Exception e ) {
              jTextArea1.setText( e.getClass().getName() + ": " + e.getMessage() );
            }

当我尝试键入某个等级时,例如“私有”,我有一个错误:

java.sql.SQLException: no such column: Private

但是,当我错误地输入一些数字时,比如“1” - 它会成功更新排名。

我做错了什么?

0 个答案:

没有答案