Закрыть соединение для одноэлементного шаблона соединения для MySQL (Java)
Мне было интересно, нужен ли мне метод closeConnection() в моем классе DBConnecter. Я знаю, что вы обычно закрываете свое соединение всякий раз, когда вы используете его, но если соединение является одиночным, я не совсем уверен.
Вот мой класс DBConnecter:
public static String driver = "com.mysql.jdbc.Driver";
public static String URL = "jdbc:mysql://localhost/polygondb";
public static String ID = "root";
public static String PW = "root";
private static Connection connection = null;
public static Connection getConnection() {
if (connection == null) {
try {
Class.forName(driver);
} catch (ClassNotFoundException ex) {
Logger.getLogger(DBConnector.class.getName()).log(Level.SEVERE, null, ex);
}
try {
connection = DriverManager.getConnection(URL, ID, PW);
} catch (SQLException ex) {
Logger.getLogger(DBConnector.class.getName()).log(Level.SEVERE, null, ex);
}
}
return connection;
}
Это может быть не так уж важно, но я хочу убедиться, что это школьный проект для экзамена (:
1 ответ
Открытие соединения с базой данных - дорогостоящий процесс. Поскольку вы используете singleton и предполагаете, что этот объект обрабатывает все ваши взаимодействия с базой данных, я бы порекомендовал сохранить соединение активным. Однако вы захотите закрыть соединение до выхода из приложения.
Если вы ожидаете одновременного выполнения большого количества запросов, возможно, вы захотите изучить пулы соединений, однако, поскольку это школьный проект, я могу предположить, что это не так.