我在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"));
}
答案 0 :(得分:3)
您可以保留并重复使用Connection
,将其保存在某些静态字段中。如果从多个线程访问它,SQLite必须在Serialized mode中工作。如果由于某种原因丢失了连接,您必须在某处重新建立连接。
如果Connection
的使用不重,您还可以使用某种方法打开它,并在不再需要时关闭,更好地在finally
区块内。