java - SQLITE 过滤查询搜索

标签 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);
    }

最佳答案

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

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

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

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

关于java - SQLITE 过滤查询搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34627528/

相关文章:

java - C中的随机数和Java中的随机数有什么区别吗?

java - 错误 "ResultSet closed"

c++ - 用 C++ 设计长列表

java - 加密解密我自己的 key 未生成java

java - org.mockito.exceptions.misusing.InvalidUseOfMatchersException

java - 尽管 jar 已正确添加到项目路径,但出现异常

sql - 更新Sqlite中的join

android - 从 SQLite 数据库获取纬度和经度以在 Android MapOverlay 中使用

java - 如何使用 Action 监听器从按钮获取背景颜色

winforms - 有什么足够好的 Winforms GUI 设计推荐吗?