尝试更新jtable时出现Sqlite错误(缺少数据库)

时间:2015-07-10 20:57:01

标签: java swing sqlite netbeans

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会自动过滤。知道为什么会出现这个错误。

1 个答案:

答案 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()+"%");