private void checkKeyPressed(java.awt.event.KeyEvent evt) {
try{
String ch ="select * from check where name like ?%";
PreparedStatement pst=conn.prepareStatement(ch);
pst.setString(1, check.getText());
ResultSet rs=pst.executeQuery();
checker.setModel(DbUtils.resultSetToTableModel(rs));
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
上面是我使用的代码,我得到了:
java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near "check": syntax error)
我有一个名为 check in sqlite 的表,我试图在我的 jframe 中创建一个搜索引擎,所以当我在文本字段中输入文本时,jtable 会自动过滤。知道为什么会发生这个错误。
最佳答案
你必须更改这部分,如果你需要传递 % ,你必须使用 set 方法传递它,并且 check 是 sqlite 中的保留关键字,将其更改为 check
String ch ="select * from check where name like ?%";
PreparedStatement pst=conn.prepareStatement(ch);
pst.setString(1, check.getText());
与
String ch ="select * from `check` where name like ?";
PreparedStatement pst=conn.prepareStatement(ch);
pst.setString(1, check.getText()+"%");
关于java - 尝试更新 jtable 时出现 Sqlite 错误(缺少数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31350144/