【发布时间】:2014-03-06 08:57:41
【问题描述】:
正如标题所说,我想搜索一个 SQL 数据库,并使用keyReleased 上的 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:
}
但是,我不能正确地做到这一点。似乎是什么问题?它仍然没有搜索。
【问题讨论】:
-
你永远不会打电话给
rs.next()。请阅读 JDBC 教程:docs.oracle.com/javase/6/docs/technotes/guides/jdbc/getstart/… -
你到底为什么要在每次释放密钥时都尝试访问数据库?请说明您要完成的工作,也许我们可以提供更好/更正确的解决方案
-
不要在 EDT 上运行查询; 做见Concurrency in Swing和How to Use Swing Timers。
-
keyReleased用于使其自动化。