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会自动过滤。知道为什么会出现这个错误。
答案 0 :(得分:2)
您必须更改此部分,如果您需要传递%,则必须使用set方法传递它,并且检查是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()+"%");