我正在实现一个搜索方法,我想在一个基于id和name的Jtable(包含2列id和name)中搜索数据。到目前为止,我只能使用其中一个,ID或名称进行搜索,但不能同时使用它们。我尝试了一个解决方案,但它不工作只是搜索最后一个(id或名称)。例如,如果我以try和catch名称开头,然后是id,那么它只能用id搜索。如果我从id和名称开始,它只按名称搜索。请你帮帮我吧。
代码:
`private void textField1KeyReleased(java.awt.event.KeyEvent evt) {
PreparedStatement pst=null;
ResultSet rs=null;
if (textField1.getText().length() > 0){
try{
String sql = "select * from compte_utilisateur where nom=?";
pst=maConnexion.ObtenirConnexion().prepareStatement(sql);
pst.setString(1, textField1.getText());
rs=pst.executeQuery();
TableUtilisateur.setModel(DbUtils.resultSetToTableModel(rs));}
**catch(Exception e){JOptionPane.showMessageDialog(null, e);}
try{
String sql = "select * from compte_utilisateur where id_utilisateur=?";
pst=maConnexion.ObtenirConnexion().prepareStatement(sql);
pst.setString(1, textField1.getText());
rs=pst.executeQuery();
TableUtilisateur.setModel(DbUtils.resultSetToTableModel(rs));}
catch(Exception e){JOptionPane.showMessageDialog(null, e);}
}
else update_table();
}`**
答案 0 :(得分:0)
只使用一次SQL调用两次从字段传递相同的值
select * from compte_utilisateur where nom=? or id_utilisateur=?
答案 1 :(得分:0)
你应该在你的项目中添加这个rs2xml.jar的jar /文件夹
String sql =“Select * From 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(结果));