我正在创建一个程序来看我的简历,因为我是一名没有工作经验的大学生。对于程序的这个特定部分,我想允许用户通过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);
}
答案 0 :(得分:1)
LIKE
是您可能需要的。
但是如果数据库很大并且用户输入速度很快就不会很快,它就不会有足够的响应。
为了使SQLITE中的查询不区分大小写,您可以使用:
SELECT * FROM ... WHERE name = 'enterName' COLLATE NOCASE