/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/db/DatabaseCoverageUpdate.java
ViewVC logotype

Diff of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/db/DatabaseCoverageUpdate.java

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

revision 2853 by torben, Wed Jan 27 11:44:12 2016 UTC revision 2937 by torben, Fri Feb 12 22:30:30 2016 UTC
# Line 8  import java.sql.Statement; Line 8  import java.sql.Statement;
8  import java.util.ArrayList;  import java.util.ArrayList;
9  import java.util.List;  import java.util.List;
10    
11    
12    
13  import dk.daoas.adressevedligehold.beans.Address;  import dk.daoas.adressevedligehold.beans.Address;
14    import dk.daoas.adressevedligehold.beans.Address.AddressState;
15    import dk.daoas.adressevedligehold.tasks.TaskLogger;
16  import dk.daoas.adressevedligehold.util.DeduplicateHelper;  import dk.daoas.adressevedligehold.util.DeduplicateHelper;
17  import dk.daoas.adressevedligehold.util.TimingHelper;  import dk.daoas.adressevedligehold.util.TimingHelper;
18    
# Line 22  public class DatabaseLayerImplementation Line 26  public class DatabaseLayerImplementation
26                    
27          //static boolean DEBUG = false;          //static boolean DEBUG = false;
28                    
29            private TaskLogger logger = TaskLogger.getInstance();
30            
31                    
32          public List<Address> getAllAdresses() throws SQLException {          public List<Address> getAllAdresses() throws SQLException {
33                  TimingHelper timing = new TimingHelper();                  TimingHelper timing = new TimingHelper();
# Line 36  public class DatabaseLayerImplementation Line 42  public class DatabaseLayerImplementation
42                                  ;                                  ;
43                                    
44                  try ( Connection conn = DBConnection.getConnection();                            try ( Connection conn = DBConnection.getConnection();          
45                                  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);
46                                  ) {                                  ) {
47                          stmt.setFetchSize(Integer.MIN_VALUE);                          stmt.setFetchSize(Integer.MIN_VALUE);
48                          ResultSet res = stmt.executeQuery(sql);                          ResultSet res = stmt.executeQuery(sql);
# Line 92  public class DatabaseLayerImplementation Line 98  public class DatabaseLayerImplementation
98                          res.close();                          res.close();
99                                                    
100                                                    
101                          System.out.println("DB Loaded " + list.size() + " adresses in " + timing.getElapsed() + "ms");                          logger.info("DB Loaded " + list.size() + " adresses in " + timing.getElapsed() + "ms");
102                                                    
103                          return list;                          return list;
104                  }                  }
105          }          }
106                    
107          private void updateAddressesBatch(List<Address> addresses)  throws SQLException {          public void saveNewAddresses(List<Address> addresses) {
108                    logger.info("DB::saveNewAddresses size:" + addresses.size() );
109                    
110                    String sql = "INSERT IGNORE INTO fulddaekning.adressetabel " +
111                                             "(vejnavn,husnr,husnrbogstav,kommunekode,vejkode,postnr,gadeid,dbkbane,indlast,aendret,david,googlechecked," +
112                                             "RuteMa,KorelisteMa,RuteTi,KorelisteTi,RuteOn,KorelisteOn,RuteTo,KorelisteTo,RuteFr,KorelisteFr,RuteLo,KorelisteLo,RuteSo,KorelisteSo) " +
113                                             "VALUES " +
114                                             "(?,?,?,?,?,?,?,?, now(), now(), ?, 0, " +
115                                             "?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
116                                    
117                    
118                    try (Connection con = DBConnection.getConnection()) {
119                            //con.setAutoCommit(false);
120                            
121                            try (PreparedStatement stmt = con.prepareStatement(sql)) {
122                                    for (Address addr : addresses) {
123                                            
124                                            String david = String.format("%04d%03d%04d", addr.postnr, addr.kommunekode, addr.vejkode);
125                                            
126                                            stmt.setString(1, addr.vejnavn);
127                                            stmt.setShort(2, addr.husnr);
128                                            stmt.setString(3, addr.husnrbogstav);
129                                            stmt.setShort(4, addr.kommunekode);
130                                            stmt.setShort(5, addr.vejkode);
131                                            stmt.setShort(6, addr.postnr);
132                                            stmt.setInt(7, addr.gadeid);
133                                            stmt.setShort(8, addr.dbkBane);
134                                            stmt.setString(9, david);
135                                            
136                                            stmt.setString(10, addr.ruteMandag);
137                                            stmt.setString(11, addr.korelisteMandag);
138                                            stmt.setString(12, addr.ruteTirsdag);
139                                            stmt.setString(13, addr.korelisteTirsdag);
140                                            stmt.setString(14, addr.ruteOnsdag);
141                                            stmt.setString(15, addr.korelisteOnsdag);
142                                            stmt.setString(16, addr.ruteTorsdag);
143                                            stmt.setString(17, addr.korelisteTorsdag);
144                                            stmt.setString(18, addr.ruteFredag);
145                                            stmt.setString(19, addr.korelisteFredag);
146                                            stmt.setString(20, addr.ruteLordag);
147                                            stmt.setString(21, addr.korelisteLordag);
148                                            stmt.setString(22, addr.ruteSondag);
149                                            stmt.setString(23, addr.korelisteSondag);
150    
151                                            
152                                            stmt.execute();
153                                            if (stmt.getUpdateCount() != 1) {
154                                                    logger.info("Error executing insert: " + addr);
155                                                    addr.state = AddressState.CREATE_FAIL;
156                                            }
157                                            
158                                    }
159                            }
160                            
161                            //con.commit();
162                    } catch (SQLException e) {
163                            logger.warning("Error inserting addresses", e  );
164                    }
165          }          }
166                    
167          public void updateAddresses(List<Address> addresses) {          public void updateAddresses(List<Address> addresses) {
168                  System.out.println("DB::UpdateAddresses size:" + addresses.size() );                  logger.info("DB::UpdateAddresses size:" + addresses.size() );
169                                    
170                  String sql = "UPDATE fulddaekning.adressetabel " +                  String sql = "UPDATE fulddaekning.adressetabel " +
171                                          "SET " +                                          "SET " +
# Line 148  public class DatabaseLayerImplementation Line 210  public class DatabaseLayerImplementation
210                                                                                    
211                                          stmt.execute();                                          stmt.execute();
212                                          if (stmt.getUpdateCount() != 1) {                                          if (stmt.getUpdateCount() != 1) {
213                                                  System.out.println("Error executing update");                                                  logger.warning("Error executing update: " + addr);
214                                          }                                          }
215                                                                                    
216                                  }                                  }
# Line 156  public class DatabaseLayerImplementation Line 218  public class DatabaseLayerImplementation
218                                                    
219                          //con.commit();                          //con.commit();
220                  } catch (SQLException e) {                  } catch (SQLException e) {
221                          System.out.println("Error updating addresses" + e.getMessage() );                          logger.warning("Error updating addresses", e );
222                  }                  }
223          }          }
224                    
225            /*
226          private static String nullify(String str) {          private static String nullify(String str) {
227                  if (str == null)                  if (str == null)
228                          return null;                          return null;

Legend:
Removed from v.2853  
changed lines
  Added in v.2937

  ViewVC Help
Powered by ViewVC 1.1.20