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/sepm/assignment | |
| 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/sepm/assignment')
| -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; +    } +}  | 
