JavaプログラムでJTable(t1)& JTextField(txtSearch)& JButton(btnSearch)があります。私がしたいのは、JTextFieldに「A」(大文字小文字を区別しない)と「Button」を入力すると、文字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 ...のような名前になりますか?name_doctor LIKE? ";'(簡略化のために切り捨てられます) .setString(1、 "%" +検索+ "%"); '...私のJDBCは少し錆びていますが、それはあなたに良い道をつけてくれるはずです – MadProgrammer
あなたのリソースを管理している必要があります(あなたの接続、文を閉じる)、私は[try-with-resources] https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html) – MadProgrammer