SQLite: Закрытие и повторное открытие базы данных - плохая привычка? - PullRequest
0 голосов
/ 19 февраля 2020

Я создаю java программу, в которой при запуске программы инициализирую базу данных.
Я делаю это в функции (void) под названием initializeDatabase():

public void initializeDatabase() {
    String statementCreateTableKlanten = "CREATE TABLE IF NOT EXISTS Klanten ("
            + "klantid INTEGER NOT NULL PRIMARY KEY,"
            + "adres TEXT,"
            + "postcode TEXT,"
            + "woonplaats TEXT,"
            + "telefoonnumer TEXT,"
            + "email TEXT,"
            + "opmerking TEXT"
            + ");"
            ;
    String statementCreateTableBestelling = "CREATE TABLE IF NOT EXISTS Bestelling ("
            + "bestelid INTEGER NOT NULL PRIMARY KEY,"
            + "klantid INTEGER NOT NULL,"
            + "aantalpersonen INTEGER,"
            + "leverdatum TODO,"
            + "bezorgen TEXT,"
            + "email TEXT,"
            + "opmerking TEXT"
            + ");"
            ;

    executeStatement(statementCreateTableKlanten);
    executeStatement(statementCreateTableBestelling);
    //This repeated for 10+ statements
}

Функции Я использую для executeStatement():

public void executeStatement(String statementStr) {
    Connection connection = connectToDatabase();

    try(Statement statement = connection.createStatement()) {
        statement.execute(statementStr);
    } catch (SQLException e) {
        System.out.println(e.getMessage());
    } finally {
        closeConnection(connection);
    }
}

public Connection connectToDatabase() {
    Connection connection = null;
    try {
        connection = DriverManager.getConnection(dbUrl);
        System.out.println("Verbonden met SQLite database.");
    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }
    return connection;
}

public void closeConnection(Connection connection) {
    try {
        if (connection != null) {
            connection.close();
            System.out.println("Verbinding met SQLite database gesloten.");
        }
    } catch (SQLException ex) {
        System.out.println(ex.getMessage());
    }
}

Является ли это плохой привычкой так часто подключаться и отключаться от базы данных, или мне лучше открыть соединение, выполнить все запросы, закрыть соединение?

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...