--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/db/DatabaseLayerImplementation.java 2016/01/27 11:44:12 2853 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/db/DatabaseLayerImplementation.java 2016/01/28 22:14:42 2876 @@ -8,7 +8,9 @@ import java.util.ArrayList; import java.util.List; + import dk.daoas.adressevedligehold.beans.Address; +import dk.daoas.adressevedligehold.beans.Address.AddressState; import dk.daoas.adressevedligehold.util.DeduplicateHelper; import dk.daoas.adressevedligehold.util.TimingHelper; @@ -98,8 +100,64 @@ } } - private void updateAddressesBatch(List
addresses) throws SQLException { + public void saveNewAddresses(List
addresses) { + System.out.println("DB::saveNewAddresses size:" + addresses.size() ); + + String sql = "INSERT IGNORE INTO fulddaekning.adressetabel " + + "(vejnavn,husnr,husnrbogstav,kommunekode,vejkode,postnr,gadeid,dbkbane,indlast,aendret,david,googlechecked," + + "RuteMa,KorelisteMa,RuteTi,KorelisteTi,RuteOn,KorelisteOn,RuteTo,KorelisteTo,RuteFr,KorelisteFr,RuteLo,KorelisteLo,RuteSo,KorelisteSo) " + + "VALUES " + + "(?,?,?,?,?,?,?,?, now(), now(), ?, 0, " + + "?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + + try (Connection con = DBConnection.getConnection()) { + //con.setAutoCommit(false); + + try (PreparedStatement stmt = con.prepareStatement(sql)) { + for (Address addr : addresses) { + + String david = String.format("%04d%03d%04d", addr.postnr, addr.kommunekode, addr.vejkode); + + stmt.setString(1, addr.vejnavn); + stmt.setShort(2, addr.husnr); + stmt.setString(3, addr.husnrbogstav); + stmt.setShort(4, addr.kommunekode); + stmt.setShort(5, addr.vejkode); + stmt.setShort(6, addr.postnr); + stmt.setInt(7, addr.gadeid); + stmt.setShort(8, addr.dbkBane); + stmt.setString(9, david); + + stmt.setString(10, addr.ruteMandag); + stmt.setString(11, addr.korelisteMandag); + stmt.setString(12, addr.ruteTirsdag); + stmt.setString(13, addr.korelisteTirsdag); + stmt.setString(14, addr.ruteOnsdag); + stmt.setString(15, addr.korelisteOnsdag); + stmt.setString(16, addr.ruteTorsdag); + stmt.setString(17, addr.korelisteTorsdag); + stmt.setString(18, addr.ruteFredag); + stmt.setString(19, addr.korelisteFredag); + stmt.setString(20, addr.ruteLordag); + stmt.setString(21, addr.korelisteLordag); + stmt.setString(22, addr.ruteSondag); + stmt.setString(23, addr.korelisteSondag); + + + stmt.execute(); + if (stmt.getUpdateCount() != 1) { + System.out.println("Error executing insert: " + addr); + addr.state = AddressState.CREATE_FAIL; + } + + } + } + + //con.commit(); + } catch (SQLException e) { + System.out.println("Error inserting addresses" + e.getMessage() ); + } } public void updateAddresses(List
addresses) {