--- dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/Database.java 2014/05/07 07:59:03 2151 +++ dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/Database.java 2014/06/19 10:24:16 2192 @@ -1,11 +1,14 @@ package dk.daoas.fulddaekning; +import java.io.IOException; import java.sql.Connection; +import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; +import java.util.Properties; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.logging.Logger; @@ -18,10 +21,10 @@ Connection conn; PreparedStatement saveStmt; - public Database(Connection conn) throws SQLException { - this.conn = conn; + public Database(SafeProperties conf) throws SQLException,IOException { + this.conn = getConnection( conf ); - String sql = "INSERT INTO fulddaekning.afstand_anden_rute_thn (orgId,orgPostnr, orgAdresse,orgGadeid,orgHusnr,orgHusnrBogstav,orgLatitude,orgLongitude,orgRute,id,postnr,adresse,gadeid,husnr,husnrbogstav,latitude,longitude,rute,afstand,`timestamp`) "+ + String sql = "INSERT INTO fulddaekning.afstand_anden_rute_ny (orgId,orgPostnr, orgAdresse,orgGadeid,orgHusnr,orgHusnrBogstav,orgLatitude,orgLongitude,orgRute,id,postnr,adresse,gadeid,husnr,husnrbogstav,latitude,longitude,rute,afstand,`timestamp`) "+ "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, now() )"; saveStmt = conn.prepareStatement(sql); @@ -29,10 +32,23 @@ } public void resetResultTable() throws SQLException { - logger.info("Truncating result table"); - String sql = "TRUNCATE TABLE fulddaekning.afstand_anden_rute_thn"; + logger.info("Dropping old result table (if exists)"); + String sql = "DROP TABLE IF EXISTS fulddaekning.afstand_anden_rute_ny"; conn.createStatement().executeUpdate(sql); - + + logger.info("Create new result table"); + sql = "CREATE TABLE fulddaekning.afstand_anden_rute_ny LIKE fulddaekning.afstand_anden_rute"; + conn.createStatement().executeUpdate(sql); + } + + public void renameResultTables() throws SQLException { + logger.info("Dropping old backup table (if exists)"); + String sql = "DROP TABLE IF EXISTS fulddaekning.afstand_anden_rute_old"; + conn.createStatement().executeUpdate(sql); + + logger.info("Rename tables"); + sql = "RENAME TABLE fulddaekning.afstand_anden_rute TO fulddaekning.afstand_anden_rute_old, fulddaekning.afstand_anden_rute_ny TO fulddaekning.afstand_anden_rute"; + conn.createStatement().executeUpdate(sql); } public BoundingBox getBoundingbox(int postnr) throws SQLException { @@ -187,6 +203,27 @@ return list; } - + public Connection getConnection(SafeProperties conf) throws SQLException, IOException { + + String db_host = conf.getSafeProperty("DB_HOST"); + String db_user = conf.getSafeProperty("DB_USER"); + String db_pass = conf.getSafeProperty("DB_PASS"); + + + + + Connection conn = null; + Properties connectionProps = new Properties(); + connectionProps.put("user", db_user); + connectionProps.put("password", db_pass); + + conn = DriverManager.getConnection( + "jdbc:mysql://" + + db_host + + ":3306/", + connectionProps); + logger.info("Connected to database"); + return conn; + } }