diff options
| author | Tharre <tharre3@gmail.com> | 2018-05-01 22:42:46 +0200 | 
|---|---|---|
| committer | Tharre <tharre3@gmail.com> | 2018-05-01 22:53:49 +0200 | 
| commit | 6c9280bde87fffc3a4d7ad884b5a631ce3659367 (patch) | |
| tree | a140d8ab7f9ff23521aea1d19bd5f3486bd5db4e /src/main/java/at/ac | |
| parent | ec300e065a60dcea0778a1bb83f990619856a4ed (diff) | |
| download | sepm-groupproject-6c9280bde87fffc3a4d7ad884b5a631ce3659367.tar.gz sepm-groupproject-6c9280bde87fffc3a4d7ad884b5a631ce3659367.tar.xz sepm-groupproject-6c9280bde87fffc3a4d7ad884b5a631ce3659367.zip  | |
Add JDBCConnectionManager
Diffstat (limited to 'src/main/java/at/ac')
| -rw-r--r-- | src/main/java/at/ac/tuwien/sepm/assignment/groupphase/util/JDBCConnectionManager.java | 45 | 
1 files changed, 45 insertions, 0 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/util/JDBCConnectionManager.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/util/JDBCConnectionManager.java new file mode 100644 index 0000000..5494471 --- /dev/null +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/util/JDBCConnectionManager.java @@ -0,0 +1,45 @@ +package at.ac.tuwien.sepm.assignment.groupphase.util; + +import java.lang.invoke.MethodHandles; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +@Component +public class JDBCConnectionManager { + +    private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); +    private static final String CONNECTION_URL = +            "jdbc:h2:~/sepm;INIT=RUNSCRIPT FROM 'classpath:sql/database.sql'"; + +    private Connection connection; + +    public JDBCConnectionManager() { +        try { +            Class.forName("org.h2.Driver"); +        } catch (ClassNotFoundException e) { +            LOG.error("Failed to load H2 JDBC driver '{}'", e.getMessage(), e); +            throw new IllegalStateException(e); +        } +    } + +    public Connection getConnection() throws SQLException { +        if (connection == null) connection = DriverManager.getConnection(CONNECTION_URL); + +        return connection; +    } + +    public void closeConnection() { +        if (connection == null) return; + +        try { +            connection.close(); +        } catch (SQLException e) { +            LOG.error("Failed to close connection '{}'", e.getMessage(), e); +        } +        connection = null; +    } +}  | 
