我正在编写一个查询来将我的数据加载到 jlist
public void showtitle(){
DefaultListModel model = new DefaultListModel();
booklist.setModel(model);
try{
Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection conn = DriverManager.getConnection("jdbc:derby://"+X, "APP", "app");
Statement stmt = conn.createStatement();
String query="SELECT TITLE FROM BOOK WHERE ISBN LIKE '%"
+ code.getText().toUpperCase()+"%' OR "
+ " TITLE LIKE '%"+name.getText().toUpperCase()+"%' ";
ResultSet rs = stmt.executeQuery(query);
while(rs.next()){
String isbn = rs.getString(1);
model.addElement(isbn);
}
}
catch ( ClassNotFoundException | SQLException ex) {
JOptionPane.showMessageDialog(null, "Unknown Error!! Data cannot be displayed!" + ex);
}
}
我这样调用这个方法:
private void codeKeyReleased(java.awt.event.KeyEvent evt)
{
showtitle();
}
插入 1000 条数据后,我的查询运行速度非常慢。难道是我的程序不好?是不是有什么致命的错误?我该怎么办?
最佳答案
您所做的不仅仅是在方法中执行查询。
您还要创建 JDBC 连接,这可能是一个成本更高的操作。
尝试创建一次 JDBC 连接并将其保存在应用程序中的某个位置。
然后,当用户运行您的按键释放事件时,只需运行您的查询并获取结果即可。
关于java - Derby 查询非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16251959/