我的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” - 它会成功更新排名。
我做错了什么?