我的Java程序中有一個JTable(t1)& JTextField(txtSearch)& JButton(btnSearch)。我想要做的是,如果我在JTextField中鍵入字母A(不區分大小寫)並按下按鈕,則所有名稱爲包含字母A的醫生將顯示在我的JTable上。直到我在我的JTable上得到一個特定的名字。如何從MySQL過濾數據並使用java在jtable中顯示它
這是我的代碼,
btnSearch = new JButton();
btnSearch.setBackground(new java.awt.Color(51, 51, 255));
btnSearch.setText("Search");
btnSearch.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String search =txtSearch.getText();
try{
conn = DriverManager.getConnection("jdbc:mysql://localhost/bibodent", "root", "");
String query = "SELECT name_doctor, mobile_doctor, phone_doctor, mail_doctor, city_doctor, spec_doctor, adres_doctor, note_doctor FROM doctor WHERE name_doctor LIKE '%" + txtName.getText() + "%' ";
ps = conn.prepareStatement(query);
ps.setString(1, search);
ResultSet rs = ps.executeQuery(query);
t1.setModel(DbUtils.resultSetToTableModel(rs));
}catch (Exception e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, e);
}
}
});
您正在將傳統查詢與準備好的查詢混合使用,它應該更像'String query =「SELECT name_doctor ... FROM doctor WHERE name_doctor LIKE?」;'(爲簡潔而截斷),然後您可以使用'ps .setString(1,「%」+ search +「%」);'...我的JDBC有點生疏,但這應該讓你走上更好的路徑 – MadProgrammer
你應該也在管理你的資源(關閉你的連接,語句)完成後,我建議看看[試用資源]( https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html) – MadProgrammer