Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何搜索SQL数据库并将其显示在JTable上_Java_Mysql_Swing_Jtable - Fatal编程技术网

Java 如何搜索SQL数据库并将其显示在JTable上

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

正如标题所说,我想搜索一个SQL数据库,并使用
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
使其自动。