aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2018-05-01 22:42:46 +0200
committerTharre <tharre3@gmail.com>2018-05-01 22:53:49 +0200
commit6c9280bde87fffc3a4d7ad884b5a631ce3659367 (patch)
treea140d8ab7f9ff23521aea1d19bd5f3486bd5db4e /src
parentec300e065a60dcea0778a1bb83f990619856a4ed (diff)
downloadsepm-groupproject-6c9280bde87fffc3a4d7ad884b5a631ce3659367.tar.gz
sepm-groupproject-6c9280bde87fffc3a4d7ad884b5a631ce3659367.tar.xz
sepm-groupproject-6c9280bde87fffc3a4d7ad884b5a631ce3659367.zip
Add JDBCConnectionManager
Diffstat (limited to 'src')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/util/JDBCConnectionManager.java45
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;
+ }
+}