/[projects]/dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/db/DatabaseLayerImplementation.java
ViewVC logotype

Diff of /dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/db/DatabaseLayerImplementation.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2666 by torben, Tue Aug 25 09:30:14 2015 UTC revision 2805 by torben, Thu Jan 14 07:54:17 2016 UTC
# Line 17  import dk.daoas.daoadresseservice.beans. Line 17  import dk.daoas.daoadresseservice.beans.
17  import dk.daoas.daoadresseservice.beans.HundredePctBean;  import dk.daoas.daoadresseservice.beans.HundredePctBean;
18  import dk.daoas.daoadresseservice.beans.SearchResult;  import dk.daoas.daoadresseservice.beans.SearchResult;
19  import dk.daoas.daoadresseservice.util.DeduplicateHelper;  import dk.daoas.daoadresseservice.util.DeduplicateHelper;
20    import dk.daoas.daoadresseservice.util.TimingHelper;
21    
22  public class DatabaseLayerImplementation implements DatabaseLayer {  public class DatabaseLayerImplementation implements DatabaseLayer {
23                    
# Line 24  public class DatabaseLayerImplementation Line 25  public class DatabaseLayerImplementation
25                    
26          @Override          @Override
27          public List<Address> getAllAdresses() throws SQLException {          public List<Address> getAllAdresses() throws SQLException {
28                    TimingHelper timing = new TimingHelper();
29                    
30                  String debugFilter = DatabaseLayerImplementation.DEBUG ? " AND postnr = 8700 " : "";                  String debugFilter = DatabaseLayerImplementation.DEBUG ? " AND postnr = 8700 " : "";
31                                    
32                  String sql =                  String sql =
# Line 41  public class DatabaseLayerImplementation Line 44  public class DatabaseLayerImplementation
44                                                    
45                          List<Address> list = new ArrayList<Address>(2600000);//initial capacity 2.6 mio                          List<Address> list = new ArrayList<Address>(2600000);//initial capacity 2.6 mio
46                                                    
47                          DeduplicateHelper<String> vejnavnCache = new DeduplicateHelper<String>();                          DeduplicateHelper<String> vejnavnCache = new DeduplicateHelper<String>(81920);
48                          DeduplicateHelper<String> husnrbogstavCache = new DeduplicateHelper<String>();                          DeduplicateHelper<String> husnrbogstavCache = new DeduplicateHelper<String>();
49                          DeduplicateHelper<String> distributorCache = new DeduplicateHelper<String>();                          DeduplicateHelper<String> distributorCache = new DeduplicateHelper<String>();
50                          DeduplicateHelper<String> korelisteCache = new DeduplicateHelper<String>();                          DeduplicateHelper<String> korelisteCache = new DeduplicateHelper<String>(8192);
51                          DeduplicateHelper<String> ruteCache = new DeduplicateHelper<String>();                          DeduplicateHelper<String> ruteCache = new DeduplicateHelper<String>(8192);
52                    
53                                                    
54                          while (res.next()) {                          while (res.next()) {
# Line 82  public class DatabaseLayerImplementation Line 85  public class DatabaseLayerImplementation
85                          }                          }
86                          res.close();                          res.close();
87                                                    
88                          System.out.println("Loaded " + list.size() + " adresses");                          
89                            System.out.println("DB Loaded " + list.size() + " adresses in " + timing.getElapsed() + "ms");
90                                                    
91                          return list;                          return list;
92                  }                  }
# Line 90  public class DatabaseLayerImplementation Line 94  public class DatabaseLayerImplementation
94                    
95          @Override          @Override
96          public List<AliasBean> getAliasList() throws SQLException {          public List<AliasBean> getAliasList() throws SQLException {
97                    TimingHelper timing = new TimingHelper();
98                                    
99    
100                  String sql = "SELECT postnr,vejnavn,aliasvejnavn " +                  String sql = "SELECT postnr,vejnavn,aliasvejnavn " +
# Line 119  public class DatabaseLayerImplementation Line 124  public class DatabaseLayerImplementation
124                                    
125                          res.close();                          res.close();
126                                                    
127                          System.out.println("Loaded " + list.size() + " aliase beans");                          System.out.println("DB Loaded " + list.size() + " aliase beans in " + timing.getElapsed() + "ms");
128                                                    
129                          return list;                          return list;
130                  }                  }
# Line 128  public class DatabaseLayerImplementation Line 133  public class DatabaseLayerImplementation
133                    
134          @Override          @Override
135          public List<ExtendedBean> getExtendedAdresslist() throws SQLException {          public List<ExtendedBean> getExtendedAdresslist() throws SQLException {
136                    
137                    TimingHelper timing = new TimingHelper();
138                    
139                  String debugFilter1 = DatabaseLayerImplementation.DEBUG ? " WHERE orgPostnr = 8700 " : "";                  String debugFilter1 = DatabaseLayerImplementation.DEBUG ? " WHERE orgPostnr = 8700 " : "";
140                  String debugFilter2 = DatabaseLayerImplementation.DEBUG ? " AND orgPostnr = 8700 " : "";                  String debugFilter2 = DatabaseLayerImplementation.DEBUG ? " AND orgPostnr = 8700 " : "";
141                                    
142                                    
143                  String sql = "select orgid, a.id as targetid, afstand, LOWER(type) as type from fulddaekning.afstand_anden_rute a " +                  String sql = "select orgid, a.id as targetid, afstand, LOWER(type) as type from fulddaekning.afstand_anden_rute a " +
144                                          "join odbc.transporttype t " +                                          "LEFT join odbc.transporttype t " +
145                                          "on t.Art = 'Transpost' " +                                          "ON (t.Rute = a.Rute) " +
                                         "and ( (t.Type = 'Cykel' and a.Afstand < 1.001) or (t.Type = 'Scooter' and a.Afstand < 1.201) or (t.Type = 'Bil' and a.Afstand < 2.601) ) " +  
                                         "and t.Rute = a.Rute " +  
146                                          debugFilter1 +                                          debugFilter1 +
147                                                                                    
148                                          "UNION ALL " +                                          "UNION ALL " +
# Line 172  public class DatabaseLayerImplementation Line 178  public class DatabaseLayerImplementation
178                                                    
179                          res.close();                          res.close();
180                                                    
181                          System.out.println("Loaded " + list.size() + " extendedbeans");                          System.out.println("DB Loaded " + list.size() + " extendedbeans in " + timing.getElapsed() + "ms");
182                                                    
183                          return list;                          return list;
184                  }                  }
# Line 180  public class DatabaseLayerImplementation Line 186  public class DatabaseLayerImplementation
186                    
187          @Override          @Override
188          public Map<Short,HundredePctBean> get100PctList() throws SQLException {          public Map<Short,HundredePctBean> get100PctList() throws SQLException {
189                    TimingHelper timing = new TimingHelper();
190                    
191                  String sql = "SELECT postnr,UPPER(distributor) as distributor,rute,koreliste,dbkbane " +                  String sql = "SELECT postnr,UPPER(distributor) as distributor,rute,koreliste,dbkbane " +
192                                           "FROM bogleveringer.adresser_udenfor_daekning";                                           "FROM bogleveringer.adresser_udenfor_daekning";
193                                    
# Line 191  public class DatabaseLayerImplementation Line 199  public class DatabaseLayerImplementation
199                          Map<Short, HundredePctBean> map = new HashMap<Short,HundredePctBean>();                          Map<Short, HundredePctBean> map = new HashMap<Short,HundredePctBean>();
200                                                    
201                          DeduplicateHelper<String> distributorCache = new DeduplicateHelper<String>();                          DeduplicateHelper<String> distributorCache = new DeduplicateHelper<String>();
202                            DeduplicateHelper<String> ruteCache = new DeduplicateHelper<String>();
203                            DeduplicateHelper<String> korelisteCache = new DeduplicateHelper<String>();
204                                                    
205                          while (res.next()) {                          while (res.next()) {
206                                                                    
# Line 198  public class DatabaseLayerImplementation Line 208  public class DatabaseLayerImplementation
208                                  HundredePctBean bean = new HundredePctBean();                                  HundredePctBean bean = new HundredePctBean();
209                                  bean.postnr = (short) res.getInt(1);                                  bean.postnr = (short) res.getInt(1);
210                                  bean.distributor = distributorCache.getInstance(res.getString(2));                                  bean.distributor = distributorCache.getInstance(res.getString(2));
211                                  bean.rute = res.getString(3);                                  bean.rute = ruteCache.getInstance( res.getString(3) );
212                                  bean.koreliste = res.getString(4);                                  bean.koreliste = korelisteCache.getInstance(res.getString(4) );
213                                  bean.dbkBane = (short)res.getInt(5);                                                      bean.dbkBane = (short)res.getInt(5);                    
214                                                                                                                    
215                                  map.put(bean.postnr, bean);                                  map.put(bean.postnr, bean);
# Line 207  public class DatabaseLayerImplementation Line 217  public class DatabaseLayerImplementation
217                                                    
218                          res.close();                          res.close();
219                                                    
220                          System.out.println("Loaded " + map.size() + " 100pct beans");                          System.out.println("DB Loaded " + map.size() + " 100pct beans in " + timing.getElapsed() + "ms");
221                                                    
222                          return map;                          return map;
223                  }                  }
# Line 240  public class DatabaseLayerImplementation Line 250  public class DatabaseLayerImplementation
250                          stmt.setString( 7, result.splitResult.etage);                          stmt.setString( 7, result.splitResult.etage);
251                          stmt.setString( 8, result.splitResult.lejlighed);                          stmt.setString( 8, result.splitResult.lejlighed);
252                          stmt.setString( 9, result.splitResult.resten);                          stmt.setString( 9, result.splitResult.resten);
253                          stmt.setString(10, brugerid);                          stmt.setString(10, brugerid);                  
254                          stmt.setString(11, omdelingsdag);                          stmt.setInt(11, getStatusInt(result.status) );
255                          stmt.setInt(12, getStatusInt(result.status) );                          stmt.setString(12, omdelingsdag);
256                                                    
257                          stmt.executeUpdate();                          stmt.executeUpdate();
258                                                    

Legend:
Removed from v.2666  
changed lines
  Added in v.2805

  ViewVC Help
Powered by ViewVC 1.1.20