我想使用姓氏或名字从数据库中过滤 JTable 上显示的结果,这样当我在 JTextfield 中键入 Nikola 或 Tesla 时,具有其中一个名字的行将被过滤。
我将名称作为一个字段存储在数据库中,即“Nikola Tesla”,当我键入 Nikola 时,它工作正常,而当我键入 Tesla 时,它没有显示任何结果。
我有一个名称字段用于存储两个名称。
我不想有单独的 First_Name 和 Last_Name 字段。
请建议我应该在下面显示的代码中添加什么:
private void jTextFieldSearchKeyReleased(java.awt.event.KeyEvent evt) {
try {
String selected = (String) jComboBoxSelected.getSelectedItem();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/"
+ "employee_certificate", "root", "");
String sql = "SELECT stuff.Emp_Id,stuff.Emp_Name, stuff.Department, "
+ "certificate.Cert_Code, certificate.Cert_Name,\n"
+ "certificate.Cert, certificate.Vendor, certificate.Date_Taken, "
+ "certificate.Expiry_Date FROM stuff LEFT JOIN certificate"
+ " ON stuff.Emp_Id=certificate.Emp_Id "
+ "WHERE " + selected + " LIKE ? ORDER BY stuff.Emp_Name\n";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, jTextFieldSearch.getText() + "%");
ResultSet rs = pstmt.executeQuery();
jTable1.setModel(DbUtils.resultSetToTableModel(rs));
pstmt.close();
con.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
最佳答案
您还需要在 jTextFieldSearch.getText() 之前添加 %。见下文
pstmt.setString(1, "%"+ jTextFieldSearch.getText() + "%");
关于java - 使用在 JTable 上的 JTextfield 中键入的名字或姓氏搜索 MYSQL 数据库过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38476349/