java - Derby 查询非常慢

标签 java sql database derby

我正在编写一个查询来将我的数据加载到 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/

相关文章:

java - 在Intellij中删除和重新导入项目

java - 在 Java 中,什么类型表示函数或带有 3 个参数的 lambda 表达式?

asp.net - 插入和更新问题

ruby-on-rails - 如何在 Ruby on Rails 中将我的生产数据库复制到我的测试数据库?

database - 普适8.x如何访问?在哪里可以找到

ruby-on-rails - Rails - 本地机器上现有的开发 Postgres 数据库到 Heroku

java - jaxb:枚举列表上的奇怪类转换异常

java - 如何在 LWJGL 中在 3D 上渲染具有透明度的 2D 纹理

sql - 如何在 ORACLE 上传递计数作为 IF 条件

MySQL 连接两个潜在的字段名称