diff options
author | Tharre <tharre3@gmail.com> | 2018-05-01 22:42:46 +0200 |
---|---|---|
committer | Tharre <tharre3@gmail.com> | 2018-05-01 22:57:57 +0200 |
commit | 9619cd0deb2dce30bb6cc92ea2c05b73c4ca892c (patch) | |
tree | 62450749e6992a9822fdc9989778c552b75b13c5 /src/main/java/at/ac/tuwien | |
parent | 708ed158c41ee2ee5dfce64fdecf89aed4c17685 (diff) | |
download | sepm-groupproject-9619cd0deb2dce30bb6cc92ea2c05b73c4ca892c.tar.gz sepm-groupproject-9619cd0deb2dce30bb6cc92ea2c05b73c4ca892c.tar.xz sepm-groupproject-9619cd0deb2dce30bb6cc92ea2c05b73c4ca892c.zip |
Add JDBCConnectionManager
Diffstat (limited to 'src/main/java/at/ac/tuwien')
-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; + } +} |