最初にコードを示し、次にいくつかの質問をしました。私はこのようなクラスデータベース接続を持っています (もしあれば構文エラーを無視してください)
class DatabaseConnection {
private static Connection connection = null;
private static String driverName="";
private static String userName="";
private static String passwrod="";
private static String url="";
private DatabaseConnection() { }
public static void createConnection() {
if ( connection == null ) {
// read database credentials from xml file and set values of driverName, userName, passowrd and url
//create connection with database and set store this connection in connection object created a class level.
}
}
public static void closeConnection1() throws Exception{
if ( connection != null ) {
connection.close();
connection == null
}
}
public static void closeConnection2() throws Exception{
if ( connection != null ) {
connection.close();
}
}
public void insertData(Object data) {
// insetData in database
}
}
データベース接続において、どちらの接続がより最適化されているかを知りたいです。このようなテストクラスがあるとしましょう
class Test {
public static void main(String args[]) {
DatabaseConnection.createConnection();
DatabaseConnection.insertData(data);
DatabaseConnection.closeConnection2(); // we call also called close connection method within the insertData method after inserting the data
}
}
データベース接続を作成した後、データベースにデータを挿入し、closeConnection2メソッドを使用して接続を閉じます。このように接続は閉じられているので、さらにメソッドを挿入したい場合は、データベースとの接続を再作成する必要がありますが、接続オブジェクトがnullではなく、createConnectionがifステートメント内のコードを実行しなかったため、これを行うことはできません. 接続を閉じるためにcloseConnection1メソッドを呼び出した場合、これを行う際に、 xmlファイルを再度解析して資格情報を取得する必要がありますが、これは最適化ソリューションではありません。どちらの方法が良いか教えてください。両方とも悪い場合は、データベース接続を作成および閉じるためのより効率的な方法を教えてください。