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はシリアル化モードで動作する必要があります。何らかの理由で接続が失われた場合に接続を再確立するには、どこかにコードが必要です。

の使用がそれほど多くない場合は、ブロックConnection内で、不要になったときに開いたり閉じたりする方法を使用することもできます。finally

于 2013-01-16T07:27:28.177 に答える