I am trying to update my sqlite3 database but its giving this error.I was able to successfully insert data to same database but I am not able to update it.Please help.
[SQLITE_ERROR] SQL error or missing database (near "where": syntax error)
at org.sqlite.core.DB.newSQLException(DB.java:909)
at org.sqlite.core.DB.newSQLException(DB.java:921)
at org.sqlite.core.DB.throwex(DB.java:886)
at org.sqlite.core.NativeDB.prepare_utf8(Native Method)
at org.sqlite.core.NativeDB.prepare(NativeDB.java:127)
at org.sqlite.core.DB.prepare(DB.java:227)
at org.sqlite.core.CorePreparedStatement.<init>(CorePreparedStatement.java:45)
at org.sqlite.jdbc3.JDBC3PreparedStatement.<init>(JDBC3PreparedStatement.java:30)
at org.sqlite.jdbc4.JDBC4PreparedStatement.<init>
my code
btnUpdate = new JButton("Update");
btnUpdate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
String query = "update students set ID='"+ id.getText() +"' , username='"+ username.getText() + "', password='"+ pass.getText() +"', firstname='"+ fname.getText() +"','"+ lname.getText() +"' WHERE ID='"+ id.getText() +"' ";
PreparedStatement pst = connection.prepareStatement(query);
pst.execute();
JOptionPane.showMessageDialog(null,"data updated successfully");
pst.close();
} catch (Exception e) {
e.printStackTrace();
}
}
});
btnUpdate.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnUpdate.setBounds(199, 246, 126, 43);
contentPane.add(btnUpdate);
PreparedStatementbuild it like... set ID=?, username=?, ...and then callpst .setParameter(index, value). That wayPreparedStatementwill take care of escaping the value, type conversions etc. and the query will be much easier to read and to spot errors.query, copy and try to run that. It should give you some direction.