我有一个文本字段,它必须从Jtable中搜索特定的记录。如何搜索表格中的特定记录?已搜索的记录将仅显示在表格中。搜索后,可以突出显示并将突出显示的记录的值放在txtfield或标签中。
private void txtsearchKeyReleased(java.awt.event.KeyEvent evt) {
try{
String sql = "select * from customer where Customer_ID=?";
pst=conn.prepareStatement(sql);
pst.setString(1, txtsearch.getText());
rs= pst.executeQuery();
if(rs.next()){
String add1 =rs.getString("Customer_ID");
lblID.setText(add1);
String add2 = rs.getString("First_Name");
lblfname.setText(add2);
String add3 = rs.getString("Last_Name");
lbllname.setText(add3);
String add4 = rs.getString("Birthdate");
lblbirthdate.setText(add4);
String add5 = rs.getString("Gender");
lblgender.setText(add5);
String add6 = rs.getString("Occupation");
lbloccupation.setText(add6);
String add7 = rs.getString("Address");
lbladdress.setText(add7);
String add8 = rs.getString("Email");
lblemailadd.setText(add8);
String add9 = rs.getString("Contact");
lblcontact.setText(add9);
String add10 = rs.getString("Status");
lblstatus.setText(add10);
String add11 = rs.getString("Income");
lblincome.setText(add11);
String add12 = rs.getString("Amount");
lblamount.setText(add12);
String add13 = rs.getString("Months");
lblterm.setText(add13 +" months");
String add14 = rs.getString("Interest");
lblinterest.setText(add14);
String add15 = rs.getString("Date_Applied");
lblapplied.setText(add15);
String add16 = rs.getString("Purpose");
lblpurpose.setText(add16);
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
仅搜索客户ID。如果我搜索其他记录仍然在表中。如果我搜索特定记录,我想要。搜索记录将显示在表格中。
答案 0 :(得分:1)
about Sorting and Filtering,教程中的示例
在SSCC E之后发布更好的帮助,因为您的代码演示了JDBC和PreparedStatement,
你会遇到Concurency in Swing的问题,Swing GUI将是不负责任的(鼠标和键事件),直到艰难和长时间运行JDBC Statement
结束,(在这种形式下,你的代码),
必须重定向JDBC Statement to the BackGround Task, use
Runnable #Thread or
SwingWorker`
Swing GUI
的所有更新必须在Event Dispatch Thread
答案 1 :(得分:0)
您对内部模型进行过滤,并使用过滤结果更新表模型。
答案 2 :(得分:0)
你应该在你的项目中添加这个rs2xml.jar的jar /文件夹
String sql =“选择*来自Inventarizimi,其中Regjistrimi =?”;
的Class.forName( “oracle.jdbc.driver.OracleDriver”);
Connection con =(Connection)DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:XE”,“Inventarizimi”);
PreparedStatement preStatement = con.prepareStatement(sql);
preStatement.setString(1,txtRegjistrimi.getText());
ResultSet result = preStatement.executeQuery();
table.setModel(DbUtils.resultSetToTableModel(结果));