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

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

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

dao/DaoAdresseService/src/dk/daoas/daoadresseservice/db/DatabaseLayer.java revision 2384 by torben, Thu Feb 26 13:11:45 2015 UTC dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/db/DatabaseLayer.java revision 2545 by torben, Wed May 13 09:36:42 2015 UTC
# Line 13  import java.util.Map; Line 13  import java.util.Map;
13    
14  import dk.daoas.daoadresseservice.DaekningsType;  import dk.daoas.daoadresseservice.DaekningsType;
15  import dk.daoas.daoadresseservice.beans.Address;  import dk.daoas.daoadresseservice.beans.Address;
16    import dk.daoas.daoadresseservice.beans.AliasBean;
17  import dk.daoas.daoadresseservice.beans.ExtendedBean;  import dk.daoas.daoadresseservice.beans.ExtendedBean;
18  import dk.daoas.daoadresseservice.beans.HundredePctBean;  import dk.daoas.daoadresseservice.beans.HundredePctBean;
19  import dk.daoas.daoadresseservice.beans.LoggedAddress;  import dk.daoas.daoadresseservice.beans.LoggedAddress;
# Line 26  public class DatabaseLayer { Line 27  public class DatabaseLayer {
27          public static List<Address> getAllAdresses() throws SQLException {          public static List<Address> getAllAdresses() throws SQLException {
28                  String debugFilter = DatabaseLayer.DEBUG ? " AND postnr = 8700 " : "";                  String debugFilter = DatabaseLayer.DEBUG ? " AND postnr = 8700 " : "";
29                                    
30                  String sql = "SELECT id,vejnavn,husnr,husnrbogstav,kommunekode,vejkode,postnr,gadeid,upper(distributor) AS distributor,dbkbane,koreliste,rute "                  String sql =
31                                    "SELECT id,vejnavn,husnr,husnrbogstav,kommunekode,vejkode,postnr,gadeid,upper(distributor) AS distributor,dbkbane,koreliste,rute,korelistesoendag,rutesoendag,latitude,longitude "
32                                  + "FROM fulddaekning.adressetabel "                                  + "FROM fulddaekning.adressetabel "
33                                  + "WHERE gadeid IS NOT NULL "                                  + "WHERE gadeid IS NOT NULL "
34                                  + debugFilter                                  + debugFilter
# Line 52  public class DatabaseLayer { Line 54  public class DatabaseLayer {
54                                  Address a = new Address();                                  Address a = new Address();
55                                  a.id = res.getInt(1);                                  a.id = res.getInt(1);
56                                  a.vejnavn = vejnavnCache.getInstance( res.getString(2) );                                  a.vejnavn = vejnavnCache.getInstance( res.getString(2) );
57                                  a.husnr = res.getInt(3);                                  a.husnr = (short) res.getInt(3);
58                                  a.husnrbogstav = husnrbogstavCache.getInstance( res.getString(4) );                                  a.husnrbogstav = husnrbogstavCache.getInstance( res.getString(4) );
59                                  a.kommunekode = res.getInt(5);                                  a.kommunekode = (short) res.getInt(5);
60                                  a.vejkode = res.getInt(6);                                  a.vejkode = (short)res.getInt(6);
61                                  a.postnr = res.getInt(7);                                  a.postnr = (short)res.getInt(7);
62                                  a.gadeid = res.getLong(8);                                  a.gadeid = res.getInt(8);
63                                  a.distributor = distributorCache.getInstance(res.getString(9));                                  a.distributor = distributorCache.getInstance(res.getString(9));
64                                  a.dbkBane = res.getInt(10);                                  a.dbkBane = (short) res.getInt(10);
65                                    
66                                  a.koreliste = korelisteCache.getInstance( res.getString(11) );                                  a.koreliste = korelisteCache.getInstance( res.getString(11) );
67                                  a.rute = ruteCache.getInstance( res.getString(12) );                                  a.rute = ruteCache.getInstance( res.getString(12) );                            
68                                    a.korelisteSondag = korelisteCache.getInstance( res.getString(13) );
69                                    a.ruteSondag = ruteCache.getInstance( res.getString(14) );
70                                    
71                                    a.latitude = (float) res.getDouble(15);
72                                    a.longitude = (float) res.getDouble(16);
73                                                                    
74                                  //a.vasketVejnavn = AddressUtils.vaskVejnavn(a.vejnavn);                                  //a.vasketVejnavn = AddressUtils.vaskVejnavn(a.vejnavn);
75                                                                    
# Line 83  public class DatabaseLayer { Line 91  public class DatabaseLayer {
91                  }                  }
92          }          }
93                    
94            public static List<AliasBean> getAliasList() throws SQLException {
95                    
96    
97                    String sql = "SELECT postnr,vejnavn,aliasvejnavn " +
98                                            "FROM bogleveringer.vejtabelprod "
99                                            ;
100                    
101                    try ( Connection conn = DBConnection.getConnection();          
102                                    Statement stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
103                                    ) {
104                                            
105                            stmt.setFetchSize(Integer.MIN_VALUE);
106                            
107                            ResultSet res = stmt.executeQuery(sql);
108                            
109                            DeduplicateHelper<String> vejCache = new DeduplicateHelper<String>();
110                            
111                            List<AliasBean> list = new ArrayList<AliasBean>( 5000);
112                            while (res.next()) {            
113                                    
114                                    AliasBean ab = new AliasBean();
115                                    ab.postnr = res.getShort(1);
116                                    ab.vejnavn = vejCache.getInstance( res.getString(2) );
117                                    ab.aliasVejnavn = vejCache.getInstance( res.getString(3) );
118                                                            
119                                    list.add(ab);
120                            }
121                    
122                            res.close();
123                            
124                            System.out.println("Loaded " + list.size() + " aliase beans");
125                            
126                            return list;
127                    }
128    
129            }
130            
131          public static List<ExtendedBean> getExtendedAdresslist() throws SQLException {          public static List<ExtendedBean> getExtendedAdresslist() throws SQLException {
132                  String debugFilter1 = DatabaseLayer.DEBUG ? " WHERE orgPostnr = 8700 " : "";                  String debugFilter1 = DatabaseLayer.DEBUG ? " WHERE orgPostnr = 8700 " : "";
133                  String debugFilter2 = DatabaseLayer.DEBUG ? " AND orgPostnr = 8700 " : "";                  String debugFilter2 = DatabaseLayer.DEBUG ? " AND orgPostnr = 8700 " : "";
# Line 120  public class DatabaseLayer { Line 165  public class DatabaseLayer {
165                                  ExtendedBean eb = new ExtendedBean();                                  ExtendedBean eb = new ExtendedBean();
166                                  eb.orgId = res.getInt(1);                                  eb.orgId = res.getInt(1);
167                                  eb.targetId = res.getInt(2);                                  eb.targetId = res.getInt(2);
168                                  eb.afstand = res.getDouble(3);                                  eb.afstand = (float) res.getDouble(3);
169                                  eb.transport = transportCache.getInstance(res.getString(4));                                  eb.transport = transportCache.getInstance(res.getString(4));
170                                                                                                                    
171                                  list.add(eb);                                  list.add(eb);
# Line 134  public class DatabaseLayer { Line 179  public class DatabaseLayer {
179                  }                  }
180          }          }
181                    
182          public static Map<Integer,HundredePctBean> get100PctList() throws SQLException {          public static Map<Short,HundredePctBean> get100PctList() throws SQLException {
183                  String sql = "SELECT postnr,UPPER(distributor) as distributor,rute,koreliste,dbkbane " +                  String sql = "SELECT postnr,UPPER(distributor) as distributor,rute,koreliste,dbkbane " +
184                                           "FROM bogleveringer.adresser_udenfor_daekning";                                           "FROM bogleveringer.adresser_udenfor_daekning";
185                                    
# Line 143  public class DatabaseLayer { Line 188  public class DatabaseLayer {
188                                  ) {                                  ) {
189                          ResultSet res = stmt.executeQuery(sql);                          ResultSet res = stmt.executeQuery(sql);
190                    
191                          Map<Integer,HundredePctBean> map = new HashMap<Integer,HundredePctBean>();                          Map<Short, HundredePctBean> map = new HashMap<Short,HundredePctBean>();
192                                                    
193                          DeduplicateHelper<String> distributorCache = new DeduplicateHelper<String>();                          DeduplicateHelper<String> distributorCache = new DeduplicateHelper<String>();
194                                                    
# Line 151  public class DatabaseLayer { Line 196  public class DatabaseLayer {
196                                                                    
197                                                                    
198                                  HundredePctBean bean = new HundredePctBean();                                  HundredePctBean bean = new HundredePctBean();
199                                  bean.postnr = res.getInt(1);                                  bean.postnr = (short) res.getInt(1);
200                                  bean.distributor = distributorCache.getInstance(res.getString(2));                                  bean.distributor = distributorCache.getInstance(res.getString(2));
201                                  bean.rute = res.getString(3);                                  bean.rute = res.getString(3);
202                                  bean.koreliste = res.getString(4);                                  bean.koreliste = res.getString(4);
203                                  bean.dbkBane = res.getInt(5);                                                    bean.dbkBane = (short)res.getInt(5);                    
204                                                                                                                    
205                                  map.put(bean.postnr, bean);                                  map.put(bean.postnr, bean);
206                          }                          }
# Line 170  public class DatabaseLayer { Line 215  public class DatabaseLayer {
215          }          }
216                    
217          public static void saveRequestLog(String brugerid, String postnr, String adresse, SearchResult result) throws SQLException {          public static void saveRequestLog(String brugerid, String postnr, String adresse, SearchResult result) throws SQLException {
218                    String setVar = "set sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ";
219                    
220                  String sql = "INSERT INTO logs.hentruteinformation (postnr,adresse,vejnavn,googlevejnavn,husnr,husnr_bogstav,etage,lejlighed,rest,brugerid,status, indlast) " +                  String sql = "INSERT INTO logs.hentruteinformation (postnr,adresse,vejnavn,googlevejnavn,husnr,husnr_bogstav,etage,lejlighed,rest,brugerid,status, indlast) " +
221                                          "VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,  NOW() )";                                          "VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,  NOW() )";
222                                    
223    
224                                    
225                  try ( Connection conn = DBConnection.getConnection();                            try ( Connection conn = DBConnection.getConnection();
226                                    Statement setStmt = conn.createStatement();                            
227                                  PreparedStatement stmt = conn.prepareStatement(sql);                                  PreparedStatement stmt = conn.prepareStatement(sql);
228                          ) {                          ) {
229                                                    
230                            setStmt.execute(setVar);
231                            
232                            
233                          stmt.setInt( 1, safeInt(postnr) );                          stmt.setInt( 1, safeInt(postnr) );
234                          stmt.setString( 2, adresse);                          stmt.setString( 2, adresse);
235                          stmt.setString( 3, result.splitResult.vej);                          stmt.setString( 3, result.splitResult.vej);
# Line 238  public class DatabaseLayer { Line 289  public class DatabaseLayer {
289                          return 20;                          return 20;
290                  case ERROR_MISSING_HOUSENUMBER:                  case ERROR_MISSING_HOUSENUMBER:
291                          return 21;                          return 21;
292                    case ERROR_POSTBOX:
293                            return 22;                      
294                  case ERROR_UNKNOWN_STREETNAME:                  case ERROR_UNKNOWN_STREETNAME:
                         return 22;  
                 case ERROR_UNKNOWN_ADDRESSPOINT:  
295                          return 23;                          return 23;
296                  case STATUS_NOT_COVERED:                  case ERROR_UNKNOWN_ADDRESSPOINT:
297                          return 24;                          return 24;
298                  case STATUS_OK:                  case STATUS_NOT_COVERED:                        
299                          return 25;                          return 25;
300                    case ERROR_INTERNAL: //                
301                            return 26;                      
302                            
303                    case STATUS_OK:
304                            return 30;
305                                                    
306                  default:                  default:
307                          return 29;                          return 31;
308                  }                  }
309          }          }
310                    

Legend:
Removed from v.2384  
changed lines
  Added in v.2545

  ViewVC Help
Powered by ViewVC 1.1.20