我正在创建一个程序来添加到我的简历中,因为我是一名还没有工作经验的大学生。对于程序的这个特定部分,我希望允许用户通过 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/