SQLITE FILTER QUERY SEARCH

时间:2016-01-06 07:10:26

标签: java sqlite user-interface

我正在创建一个程序来看我的简历,因为我是一名没有工作经验的大学生。对于程序的这个特定部分,我想允许用户通过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);
    }

1 个答案:

答案 0 :(得分:1)

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

但是如果数据库很大并且用户输入速度很快就不会很快,它就不会有足够的响应。

为了使SQLITE中的查询不区分大小写,您可以使用:

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