summaryrefslogtreecommitdiff
path: root/sql-persistence/src/main/java/io/trygvis/persistence/sql/SqlSessionFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'sql-persistence/src/main/java/io/trygvis/persistence/sql/SqlSessionFactory.java')
-rw-r--r--sql-persistence/src/main/java/io/trygvis/persistence/sql/SqlSessionFactory.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/sql-persistence/src/main/java/io/trygvis/persistence/sql/SqlSessionFactory.java b/sql-persistence/src/main/java/io/trygvis/persistence/sql/SqlSessionFactory.java
new file mode 100644
index 0000000..adf36d3
--- /dev/null
+++ b/sql-persistence/src/main/java/io/trygvis/persistence/sql/SqlSessionFactory.java
@@ -0,0 +1,23 @@
+package io.trygvis.persistence.sql;
+
+import javax.sql.DataSource;
+import java.sql.Connection;
+import java.sql.SQLException;
+
+public abstract class SqlSessionFactory<T extends SqlSession> {
+ private final SqlUnit unit;
+ private final DataSource ds;
+
+ public SqlSessionFactory(SqlUnit unit, DataSource ds) {
+ this.unit = unit;
+ this.ds = ds;
+ }
+
+ public T newSession() throws SQLException {
+ Connection c = ds.getConnection();
+
+ return newSession(c);
+ }
+
+ protected abstract T newSession(Connection c);
+}