Добрый день, работаю с SQlite на java, вот у меня появился на корректность следующих строк кода.
static CookieManager cookieManager = new CookieManager();
static Connection dataConnection;
static Statement dataStatement;
Не будет ли накладным постоянное хранение в памяти этих 3-х объектов? dataConnection и dataStatement далее инициализируются в первом используемом классе наследнике(наследуются все классы от класса, в котором объявлены эти статические переменные). Эти переменные используются всеми экземплярами этих классов-наследников и каждый экземпляр специализируется на загрузке определённой информации. Так разумно их делать static или лучше каждый раз при сохранении или загрузке инфы создавать локальный объект определённого классе-наследника и обходится без static'a?
Я бы посоветовал бы Вам лучше создать класс Singleton для подключение к SQLite и пользоваться им из любого класса.
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
class JDBCConnector {
private static HashMap<String, Connection> connections = new HashMap<>();
private JDBCConnector() {
}
static synchronized Connection getConnection(String pathToDB) {
try {
Class.forName("org.sqlite.JDBC");
if (connections.containsKey(pathToDB)) {
return connections.get(pathToDB);
} else {
Connection connection =
DriverManager.getConnection("jdbc:sqlite:" + pathToDB);
connections.put(pathToDB, connection);
return connection;
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
System.out.println("Where is your JDBC Driver?");
e.printStackTrace();
}
return null;
}
}
Этот класс имеет только один статичный метод getConnection, и он хранит все подключения на всякий случай если вы будете работать с несколькими базами данных. Он хорош еще тем, что если в будущем вы захотите работать с MySQL'ом или другой базой данных, то Вам надо будет заменить только этот класс.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники