java - 以另一种形式使用 Java DB 连接

标签 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"));  
     }

最佳答案

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

如果Connection的使用并不频繁,您还可以使用一些方法来打开它并在不再需要时关闭它,最好在finally block 内。

关于java - 以另一种形式使用 Java DB 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14353107/

相关文章:

JavaFX AnimationTimer 未正确停止

java - Axis 代码生成错误 : IWAB0399E Error in generating Java from WSDL

r - 使用 RSQLite 和 bind.data 批量更新 R 中的 SQLite 列

sql - 如何限制要在Sqlite3中存储的行数?

sqlite - FTS 查询类似于 LIKE 'a%' ?

java - 后退按钮在 WebView 中无法正常运行 - Android

Java Android、倒数计时器和 ProgressBar(先读)

java - jdbc :sqlite not retreving data

java - 我需要安装 SQLite 以便 SQLiteJDBC 工作吗?

android - 适用于 Android 的 SQLDroid JDBC 驱动程序