Из примера в
NodeJS
помню, что там подключение к БД инициализировалось один раз и делался экспорт экземпляра объекта подключенного к БД.
В
php
везде через
include
производилась вставка куска кода с подключением к БД
include ($_SERVER['DOCUMENT_ROOT'].'/connect.php');
Как в Java реализуется класс, который оперирует подключением к БД?
Это класс со статическим значением
public static Connection DB;
Где мы в методе инициализируем
DB = DriverManager.getConnection("postgres", "postgres", "postgres");
И просто везде обращаемся через подобную конструкцию?
import ru.pack.sql.Database;
Statement st = Database.DB
ResultSet rs = st.executeQuery("SELECT name FROM users");
class Database {
public static Connection DB;
public static void createConnect() {
DB = DriverManager.getConnection(db, "postgres", "postgres");
}
}
И в main производим
public static void main(String[] args) {
try {
Database.createConnect();
}
}
Или перед каждый запросом производим подключение к БД?
В чем разница подходов между единовременным подключением через создание ссылки в объекте и регулярными подключениями подключениями к БД перед каждым запросом?
Влияет ли как-то на производительность то, что мы перед каждым запросом будем выполнять
Connection conn = DriverManager.getConnection(db, "postgres", "postgres");
или это на столько незначительная операция, что ее можно приравнять к экономии на спичках?
Пример того, из чего я хочу убрать логику БД и вынести в отдельную область.
public static void main(String[] args) {
try {
String db = "jdbc:postgresql://localhost:5400/postgres";
Connection conn = DriverManager.getConnection(db, "postgres", "postgres");
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT name FROM users");
while(rs.next()) {
System.out.println("name is " + rs.getString("name"));
}
}
catch(Exception ex) {
System.out.println("DB exception: " + ex);
}
try(ServerSocket server = new ServerSocket(8080)) {
while(true) {
try(Socket client = server.accept()) {
handleRequest(client);
}
}
}
catch(IOException ex) {
System.out.println("Exception: " + ex);
}
}