0

我在 Java 中创建了一个简单的 Java 连接脚本来连接到如下所示的数据库。

import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class dbconn {

public static void main(String[] args) throws ClassNotFoundException
{

Class.forName("org.sqlite.JDBC");

Connection connection = null;  
try
{
  // create a database connection
  connection = DriverManager.getConnection("jdbc:sqlite:C:/Program Files (x86)/Spiceworks/db/spiceworks_prod.db");
  Statement statement = connection.createStatement();
  statement.setQueryTimeout(30);  // set timeout to 30 sec.                  
}
catch(SQLException e)
{
  // if the error message is "out of memory", 
  // it probably means no database file is found
  System.err.println(e.getMessage());
}
finally
{
  try
  {
    if(connection != null)
        connection.close();

  }
  catch(SQLException e)
  {
    // connection close failed.
    System.err.println(e);
  }
}
}
}

现在我已经通过 dbconn 脚本中的一些 SQL 查询测试了这个连接,它可以工作。

但是我的问题是,我如何将这个数据库实例调用到同一个项目中的另一个表单中来执行相同的 SQL 查询,这些查询是:

 ResultSet resultSet = null;  

  resultSet = statement.executeQuery("SELECT * FROM users");  
     while (resultSet.next()) 
     {  
         System.out.println("EMPLOYEE Email: " + resultSet.getString("email"));  
     }
4

1 回答 1

3

您可以保留和重用Connection,可能将其保存在某个静态字段中。如果你从多个线程访问它,SQLite 必须在Serialized 模式下工作。如果由于某种原因丢失了连接,您必须在某处有代码才能重新建立连接。

如果使用Connection不重,也可以有一些方法,在不再需要时打开并关闭,最好在finally块内。

于 2013-01-16T07:27:28.177 回答