以另一种形式使用Java DB Connection

时间:2013-01-16 07:16:40

标签: java sqlite sqlitejdbc

我在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"));  
     }

1 个答案:

答案 0 :(得分:3)

您可以保留并重复使用Connection,将其保存在某些静态字段中。如果从多个线程访问它,SQLite必须在Serialized mode中工作。如果由于某种原因丢失了连接,您必须在某处重新建立连接。

如果Connection的使用不重,您还可以使用某种方法打开它,并在不再需要时关闭,更好地在finally区块内。