Java 如何搜索SQL数据库并将其显示在JTable上
正如标题所说,我想搜索一个SQL数据库,并使用Java 如何搜索SQL数据库并将其显示在JTable上,java,mysql,swing,jtable,Java,Mysql,Swing,Jtable,正如标题所说,我想搜索一个SQL数据库,并使用keyreased上的jTextField将其显示在JTable上。 这就是我尝试过的: private void jTextField2KeyReleased(java.awt.event.KeyEvent evt) { try{ int get = (int)jTable2.getModel().getValueAt(jTable2.getSelect
keyreased
上的jTextField将其显示在JTable上。
这就是我尝试过的:
private void jTextField2KeyReleased(java.awt.event.KeyEvent evt) {
try{
int get = (int)jTable2.getModel().getValueAt(jTable2.getSelectedRow(), 0);
String query = "SELECT FName FROM roominfo WHERE FName LIKE '%" + jTextField2.getText() + "%'";
String url = "jdbc:mysql://localhost:3306/adv";
Connection conn = DriverManager.getConnection(url,"root","sa");
Statement st = conn.createStatement();
rs = st.executeQuery(query);
jTable2.setModel(DbUtils.resultSetToTableModel(rs));
conn.close();
}
catch (Exception e) {
System.err.println("Got an exception! ");
JOptionPane.showMessageDialog(null,"Got an exception!");
System.err.println(e.getMessage());
} // TODO add your handling code here:
}
然而,我不能做得很好。有什么问题吗?它仍然无法搜索 按下
上的键
:
try{
String url = "jdbc:mysql://localhost:3306/adv";
Connection conn = DriverManager.getConnection(url,"root","sa");
Statement st = conn.createStatement();
String query = "SELECT CustomerNo, FName, FROM roominfo WHERE FName LIKE '%" + jTextField2.getText() + "%'";
rs = st.executeQuery(query);
jTable2.setModel(DbUtils.resultSetToTableModel(rs));
conn.close();
}
catch (Exception e) {
JOptionPane.showMessageDialog(null,"Got an exception!");
System.err.println(e.getMessage());
}
下载rs2xml.jar库并将其导入特定的项目库。 然后
导入net.proteanit.sql.DbUtils代码>在特定java类中。
当我们在txtId
中插入id值,然后单击创建的search
按钮进行操作时,有一个名为student的数据库表。特定学生id的行数据将在创建的表学生
中执行
下面是search
按钮中的代码:
String id = txtId.getText();
String searchQuery = "SELECT * FROM student WHERE id ='"+id+"'";
try {
PreparedStatement pst = conn.prepareStatement(searchQuery);
ResultSet rs = pst.executeQuery();
tableStudent.setModel(DbUtils.resultSetToTableModel(rs));
} catch (SQLException ex) {
Logger.getLogger(UpdateDonor.class.getName()).log(Level.SEVERE, null, ex);
}
您从未调用过rs.next()
。请阅读JDBC教程:为什么每次释放密钥时都要尝试访问数据库?请解释您试图实现的目标,也许我们可以提供更好/更正确的解决方案不要在EDT上运行查询;请务必参阅,并使用。keyreased
使其自动。