Java SQLITE筛选器查询搜索

Java SQLITE筛选器查询搜索,java,sqlite,user-interface,Java,Sqlite,User Interface,鉴于我是一名没有工作经验的大学生,我正在创建一个程序,将其放在我的简历上。对于程序的这一特定部分,我希望允许用户通过id号、名字或姓氏在sqlite数据库中搜索员工。它工作正常,但是,它只会显示拼写准确且大写敏感的员工姓名。我想要它,这样用户可以输入一个或多个字母,它将显示数据库中包含该字母或两个字母的所有内容,等等 这就是我所拥有的: try { String field = (String)fieldCombo.getSelectedItem();//gets

鉴于我是一名没有工作经验的大学生,我正在创建一个程序,将其放在我的简历上。对于程序的这一特定部分,我希望允许用户通过id号、名字或姓氏在sqlite数据库中搜索员工。它工作正常,但是,它只会显示拼写准确且大写敏感的员工姓名。我想要它,这样用户可以输入一个或多个字母,它将显示数据库中包含该字母或两个字母的所有内容,等等

这就是我所拥有的:

        try {
        String field = (String)fieldCombo.getSelectedItem();//gets jcombobox selection
        //jcombobox fields are slightly different than the column names in sql table so i did this
        if(field.equals("First Name")) {
            newField = "firstName";
        }
        else if(field.equals("Last Name")) {
            newField = "lastName";
        }
        else if(field.equals("ID Num")) {
            newField = "idNum";
        }
        String sql = "select idNum as 'ID Number', firstName as 'First Name', lastName as 'Last Name' from tableEMPLOYEE where " + newField + " = ?";
        pst = connect.prepareStatement(sql);
        pst.setString(1, searchField.getText());
        rs = pst.executeQuery();
        empTable.setModel(DbUtils.resultSetToTableModel(rs));

    }
    catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }

正如蒂姆在评论部分提到的。SQL
LIKE
是您可能需要的

但是如果数据库太大,用户输入速度太快,它的响应速度就不够快

要在SQLITE中进行不区分大小写的查询,可以使用:

SELECT * FROM ... WHERE name = 'enterName' COLLATE NOCASE

研究如何使用
LIKE
操作符。但是像这样的
可能不是你想要做的事情的灵丹妙药。非常感谢@Tim Biegeleisen。谢谢你,成功了
String sql=“从tableEMPLOYEE中选择idNum、firstName、lastName,其中“+newField+”类似“+”searchField.getText()+“%”COLLATE NOCASE”