/
Danchi
/
Java_Cars
Обзор
Документация
Войти
/
Danchi
/
Java_Cars
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/com/example/car/config/H2DatabaseInitializer.java
74 строки
3 KB
artem
4 - 8
18 дек 2024, 11:24
18 дек 2024, 11:24
783cfa1
Код
Авторство
О чём код?
package com.example.car.config; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; public class H2DatabaseInitializer { String jdbcUrl; String username; String password; public H2DatabaseInitializer(String jdbcUrl, String username, String password) { this.jdbcUrl = jdbcUrl; this.username = username; this.password = password; } public void init() { try (Connection connection = DriverManager.getConnection(jdbcUrl, username, password)) { System.out.println("Подключение к базе данных H2 успешно!"); executeSqlScript(connection, "/db/schema.sql"); executeSqlScript(connection, "/db/data.sql"); System.out.println("Скрипты выполнены успешно!"); } catch (Exception e) { e.printStackTrace(); } } public void drop() { try (Connection connection = DriverManager.getConnection(jdbcUrl, username, password)) { System.out.println("Подключение к базе данных H2 успешно!"); try (Statement statement = connection.createStatement()) { statement.execute("DROP ALL OBJECTS DELETE FILES"); System.out.println("Все объекты в базе данных были успешно удалены."); } } catch (Exception e) { e.printStackTrace(); } } public Connection getConnection() throws SQLException { return DriverManager.getConnection(jdbcUrl, username, password); } private void executeSqlScript(Connection connection, String scriptPath) { try (InputStream is = getClass().getResourceAsStream(scriptPath); BufferedReader reader = new BufferedReader(new InputStreamReader(is))) { StringBuilder sql = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { sql.append(line).append("\n"); } try (Statement statement = connection.createStatement()) { System.out.println("Выполняется SQL: " + sql.toString()); statement.execute(sql.toString()); System.out.println("Скрипт " + scriptPath + " выполнен успешно."); } } catch (Exception e) { throw new RuntimeException("Ошибка выполнения скрипта: " + scriptPath, e); } } }