--- dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/db/DatabaseLayerImplementation.java 2015/11/19 15:29:36 2775
+++ dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/db/DatabaseLayerImplementation.java 2016/10/10 12:56:57 3122
@@ -21,7 +21,7 @@
public class DatabaseLayerImplementation implements DatabaseLayer {
- static boolean DEBUG = false;
+ public static final boolean DEBUG = false;
@Override
public List
getAllAdresses() throws SQLException {
@@ -30,25 +30,28 @@
String debugFilter = DatabaseLayerImplementation.DEBUG ? " AND postnr = 8700 " : "";
String sql =
- "SELECT id,vejnavn,husnr,husnrbogstav,kommunekode,vejkode,postnr,gadeid,upper(distributor) AS distributor,dbkbane,koreliste,rute,korelisteloerdag,ruteloerdag,korelistesoendag,rutesoendag,latitude,longitude "
+ "SELECT id,vejnavn,husnr,husnrbogstav,kommunekode,vejkode,postnr,gadeid,upper(distributor) AS distributor,dbkbane,latitude,longitude, "
+ + "rutema,korelistema,ruteti,korelisteti,ruteon,korelisteon,ruteto,korelisteto,rutefr,korelistefr,rutelo,korelistelo,ruteso,korelisteso "
+ "FROM fulddaekning.adressetabel "
+ "WHERE gadeid IS NOT NULL "
+ debugFilter
;
+
try ( Connection conn = DBConnection.getConnection();
- Statement stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
+ Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
) {
stmt.setFetchSize(Integer.MIN_VALUE);
ResultSet res = stmt.executeQuery(sql);
List list = new ArrayList(2600000);//initial capacity 2.6 mio
- DeduplicateHelper vejnavnCache = new DeduplicateHelper();
+ DeduplicateHelper vejnavnCache = new DeduplicateHelper(81920);
DeduplicateHelper husnrbogstavCache = new DeduplicateHelper();
DeduplicateHelper distributorCache = new DeduplicateHelper();
- DeduplicateHelper korelisteCache = new DeduplicateHelper();
- DeduplicateHelper ruteCache = new DeduplicateHelper();
+ DeduplicateHelper dirigeringsCache = new DeduplicateHelper(16*1024);
+
+ DeduplicateHelper baneCache = new DeduplicateHelper();
while (res.next()) {
@@ -63,19 +66,30 @@
a.postnr = (short)res.getInt(7);
a.gadeid = res.getInt(8);
a.distributor = distributorCache.getInstance(res.getString(9));
- a.dbkBane = (short) res.getInt(10);
+ a.dbkBane = baneCache.getInstance( res.getString(10) );
+ a.latitude = (float) res.getDouble(11);
+ a.longitude = (float) res.getDouble(12);
+
+ a.routingMandag.rute = dirigeringsCache.getInstance( res.getString(13) );
+ a.routingMandag.koreliste = dirigeringsCache.getInstance( res.getString(14) );
- a.koreliste = korelisteCache.getInstance( res.getString(11) );
- a.rute = ruteCache.getInstance( res.getString(12) );
- a.korelisteLordag = korelisteCache.getInstance( res.getString(13) );
- a.ruteLordag = ruteCache.getInstance( res.getString(14) );
- a.korelisteSondag = korelisteCache.getInstance( res.getString(15) );
- a.ruteSondag = ruteCache.getInstance( res.getString(16) );
+ a.routingTirsdag.rute = dirigeringsCache.getInstance( res.getString(15) );
+ a.routingTirsdag.koreliste = dirigeringsCache.getInstance( res.getString(16) );
+
+ a.routingOnsdag.rute = dirigeringsCache.getInstance( res.getString(17) );
+ a.routingOnsdag.koreliste = dirigeringsCache.getInstance( res.getString(18) );
- a.latitude = (float) res.getDouble(17);
- a.longitude = (float) res.getDouble(18);
+ a.routingTorsdag.rute = dirigeringsCache.getInstance( res.getString(19) );
+ a.routingTorsdag.koreliste = dirigeringsCache.getInstance( res.getString(20) );
- //a.vasketVejnavn = AddressUtils.vaskVejnavn(a.vejnavn);
+ a.routingFredag.rute = dirigeringsCache.getInstance( res.getString(21) );
+ a.routingFredag.koreliste = dirigeringsCache.getInstance( res.getString(22) );
+
+ a.routingLordag.rute = dirigeringsCache.getInstance( res.getString(23) );
+ a.routingLordag.koreliste = dirigeringsCache.getInstance( res.getString(24) );
+
+ a.routingSondag.rute = dirigeringsCache.getInstance( res.getString(25) );
+ a.routingSondag.koreliste = dirigeringsCache.getInstance( res.getString(26) );
//Ajourfør adresse objectets dækningstype
@@ -85,6 +99,7 @@
}
res.close();
+
System.out.println("DB Loaded " + list.size() + " adresses in " + timing.getElapsed() + "ms");
return list;
@@ -101,7 +116,7 @@
;
try ( Connection conn = DBConnection.getConnection();
- Statement stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
+ Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
) {
stmt.setFetchSize(Integer.MIN_VALUE);
@@ -153,7 +168,7 @@
;
try ( Connection conn = DBConnection.getConnection();
- Statement stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
+ Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
) {
@@ -191,7 +206,7 @@
"FROM bogleveringer.adresser_udenfor_daekning";
try ( Connection conn = DBConnection.getConnection();
- Statement stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
+ Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
) {
ResultSet res = stmt.executeQuery(sql);
@@ -200,6 +215,7 @@
DeduplicateHelper distributorCache = new DeduplicateHelper();
DeduplicateHelper ruteCache = new DeduplicateHelper();
DeduplicateHelper korelisteCache = new DeduplicateHelper();
+ DeduplicateHelper baneCache = new DeduplicateHelper();
while (res.next()) {
@@ -209,7 +225,7 @@
bean.distributor = distributorCache.getInstance(res.getString(2));
bean.rute = ruteCache.getInstance( res.getString(3) );
bean.koreliste = korelisteCache.getInstance(res.getString(4) );
- bean.dbkBane = (short)res.getInt(5);
+ bean.dbkBane = baneCache.getInstance(res.getString(5) );
map.put(bean.postnr, bean);
}
@@ -298,12 +314,16 @@
return 22;
case ERROR_UNKNOWN_STREETNAME:
return 23;
- case ERROR_UNKNOWN_ADDRESSPOINT:
+ case ERROR_UNKNOWN_HOUSENUMBER:
return 24;
+
case STATUS_NOT_COVERED:
return 25;
case ERROR_INTERNAL: //
- return 26;
+ return 26;
+
+ case ERROR_UNKNOWN_LITRA: //Er kommet til senere, derfor ligger den paa 27 selvom den logisk set burde have haft 25
+ return 27;
case STATUS_OK:
return 30;