diff --git a/src/main/java/org/leolo/nrdatad/db/DatabaseManager.java b/src/main/java/org/leolo/nrdatad/db/DatabaseManager.java index 3f77e19..062177b 100644 --- a/src/main/java/org/leolo/nrdatad/db/DatabaseManager.java +++ b/src/main/java/org/leolo/nrdatad/db/DatabaseManager.java @@ -16,4 +16,6 @@ public interface DatabaseManager { public CorpusDao getCORPUSDao(); public SmartDao getSmartDao(); + + public TiplocDao getTiplocDao(); } diff --git a/src/main/java/org/leolo/nrdatad/db/TiplocDao.java b/src/main/java/org/leolo/nrdatad/db/TiplocDao.java new file mode 100644 index 0000000..9509d18 --- /dev/null +++ b/src/main/java/org/leolo/nrdatad/db/TiplocDao.java @@ -0,0 +1,23 @@ +package org.leolo.nrdatad.db; + +import org.leolo.nrdatad.model.Tiploc; + +import java.sql.SQLException; +import java.util.Collection; + +public abstract class TiplocDao extends BaseDao{ + + public TiplocDao(DatabaseManager manager) { + super(manager); + } + + public abstract void insert(Tiploc tiploc) throws SQLException; + + public void insertAll(Collection tiplocs) throws SQLException{ + for(Tiploc tiploc: tiplocs){ + insert(tiploc); + } + } + + public abstract void truncateTable() throws SQLException; +} diff --git a/src/main/java/org/leolo/nrdatad/db/mariadb/DatabaseManager.java b/src/main/java/org/leolo/nrdatad/db/mariadb/DatabaseManager.java index c79479b..9a7b67e 100644 --- a/src/main/java/org/leolo/nrdatad/db/mariadb/DatabaseManager.java +++ b/src/main/java/org/leolo/nrdatad/db/mariadb/DatabaseManager.java @@ -6,6 +6,7 @@ import org.leolo.nrdatad.ConfigurationManager; import org.leolo.nrdatad.db.CorpusDao; import org.leolo.nrdatad.db.MetadataDao; import org.leolo.nrdatad.db.SmartDao; +import org.leolo.nrdatad.db.TiplocDao; import org.mariadb.jdbc.MariaDbPoolDataSource; import java.sql.*; @@ -77,4 +78,9 @@ public class DatabaseManager implements org.leolo.nrdatad.db.DatabaseManager{ public SmartDao getSmartDao() { return new SmartDaoImpl(this); } + + @Override + public TiplocDao getTiplocDao() { + return new TiplocDaoImpl(this); + } } diff --git a/src/main/java/org/leolo/nrdatad/db/mariadb/TiplocDaoImpl.java b/src/main/java/org/leolo/nrdatad/db/mariadb/TiplocDaoImpl.java new file mode 100644 index 0000000..91590b5 --- /dev/null +++ b/src/main/java/org/leolo/nrdatad/db/mariadb/TiplocDaoImpl.java @@ -0,0 +1,49 @@ +package org.leolo.nrdatad.db.mariadb; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.leolo.nrdatad.db.DatabaseManager; +import org.leolo.nrdatad.db.TiplocDao; +import org.leolo.nrdatad.model.Tiploc; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; + +public class TiplocDaoImpl extends TiplocDao { + + private Logger log = LogManager.getLogger(); + + public TiplocDaoImpl(DatabaseManager manager) { + super(manager); + } + + @Override + public void insert(Tiploc tiploc) throws SQLException { + try( + Connection conn = getConnection(); + PreparedStatement pstmt = conn.prepareStatement("INSERT INTO tiploc (tiploc_code, nalco, stanox, crs_code, description, tps_description) VALUES (?,?,?,?,?,?)") + ){ + setString(pstmt, 1, tiploc.getTiplocCode()); + setString(pstmt, 2, tiploc.getNalco()); + setString(pstmt, 3, tiploc.getStanox()); + setString(pstmt, 4, tiploc.getCrsCode()); + setString(pstmt, 5, tiploc.getDescription()); + setString(pstmt, 6, tiploc.getTpsDescription()); + pstmt.executeUpdate(); + conn.commit(); + } + } + + @Override + public void truncateTable() throws SQLException{ + try( + Connection conn = getConnection(); + Statement stmt = conn.createStatement() + ){ + log.atInfo().log("Truncating table tiploc"); + stmt.executeQuery("TRUNCATE TABLE tiploc"); + } + } +} diff --git a/src/test/java/org/leolo/nrdatad/db/test/DatabaseManager.java b/src/test/java/org/leolo/nrdatad/db/test/DatabaseManager.java index cb53841..8248409 100644 --- a/src/test/java/org/leolo/nrdatad/db/test/DatabaseManager.java +++ b/src/test/java/org/leolo/nrdatad/db/test/DatabaseManager.java @@ -3,6 +3,7 @@ package org.leolo.nrdatad.db.test; import org.leolo.nrdatad.db.CorpusDao; import org.leolo.nrdatad.db.MetadataDao; import org.leolo.nrdatad.db.SmartDao; +import org.leolo.nrdatad.db.TiplocDao; import java.sql.Connection; import java.sql.SQLException; @@ -29,6 +30,11 @@ public class DatabaseManager implements org.leolo.nrdatad.db.DatabaseManager { } @Override + public TiplocDao getTiplocDao() { + return null; + } + + @Override public MetadataDao getMetadataDao() { return null; }