У меня есть JTable (t1) & JTextField (txtSearch) & JButton (btnSearch) в моей программе Java. Я бы хотел сделать, если я наберу букву A (нечувствительность к регистру) в JTextField и нажмите кнопку, на моем JTable отобразится весь доктор, имя которого Содержит букву A. пока я не получу определенное имя на моем JTable.Как фильтровать данные из mysql и показывать их в jtable с помощью java
это мой код,
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
Вы должны также управлять своими ресурсами (закрывая свое соединение, заявления), когда вы сделали это, я бы предложил посмотреть [try-with-resources] (https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html) – MadProgrammer