Advertisement
Guest User

Untitled

a guest
Mar 9th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.98 KB | None | 0 0
  1. package com.cgi.crdb.dao;
  2.  
  3. import com.cgi.crdb.connection.DatabaseConnection;
  4. import com.cgi.crdb.models.Customer;
  5. import com.cgi.crdb.models.Repair;
  6. import com.cgi.crdb.models.Vehicle;
  7. import com.cgi.crdb.parser.Triplet;
  8.  
  9. import java.sql.*;
  10. import java.util.List;
  11.  
  12. public class Dao {
  13.     private String connectionString;
  14.     private String userName;
  15.     private String password;
  16.  
  17.     public Dao(String connectionString, String userName, String password) {
  18.         this.connectionString = connectionString;
  19.         this.userName = userName;
  20.         this.password = password;
  21.     }
  22.  
  23.     public void testConnection() throws SQLException {
  24.         DatabaseConnection Db = new DatabaseConnection();
  25.         try (Connection con = Db.getConnection(connectionString, userName, password)) {
  26.             System.out.println("I am in!");
  27.         }
  28.     }
  29.  
  30.     public void insertIntoDatabase(Triplet triplet) throws SQLException {
  31.         DatabaseConnection Db = new DatabaseConnection();
  32.         try (Connection con = Db.getConnection(connectionString, userName, password)) {
  33.             List<Customer> customers = triplet.getCustomers();
  34.             List<Vehicle> vehicles = triplet.getVehicles();
  35.             List<Repair> repairs = triplet.getRepairs();
  36.             con.setAutoCommit(false);
  37.             final int batchSize = 1000;
  38.             int count = 0;
  39.             String callProcedureUpdateCustomer = "{call INSERT_OR_UPDATE_CUSTOMER(?,?,?,?,?,?,?)}";
  40.             CallableStatement insertUpdateCustomer = con.prepareCall(callProcedureUpdateCustomer);
  41.             for (Customer c : customers) {
  42.                 insertUpdateCustomer.setInt(1, c.getCuOldId());
  43.                 insertUpdateCustomer.setString(2, c.getCuName());
  44.                 insertUpdateCustomer.setString(3, c.getCuType().toString());
  45.                 insertUpdateCustomer.setDate(4, new java.sql.Date(c.getCuOriginDate().getTime()));
  46.                 insertUpdateCustomer.setDate(5, new java.sql.Date(c.getCuRegDate().getTime()));
  47.                 insertUpdateCustomer.setInt(6, c.getCuPhoneNumber());
  48.                 insertUpdateCustomer.setDate(7, new java.sql.Date(c.getCuFileDate().getTime()));
  49.                 insertUpdateCustomer.addBatch();
  50.                 if(++count % batchSize == 0) {
  51.                     insertUpdateCustomer.executeBatch();
  52.                 }
  53.                 String callProcedureUpdateVehicle = "{call INSERT_OR_UPDATE_VEHICLE(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}";
  54.                 CallableStatement insertUpdateVehicle = con.prepareCall(callProcedureUpdateVehicle);
  55.                 for(Vehicle v : c.getVehicles()) {
  56.                     insertUpdateVehicle.setInt(1, v.getVehOldId());
  57.                     insertUpdateVehicle.setInt(2, v.getVehCuId());
  58.                     insertUpdateVehicle.setString(3, v.getVehVin());
  59.                     insertUpdateVehicle.setDate(4, new java.sql.Date(v.getVehRegDate().getTime()));
  60.                     insertUpdateVehicle.setString(5, v.getVehRegCountry());
  61.                     insertUpdateVehicle.setString(6, v.getVehManufacturer());
  62.                     insertUpdateVehicle.setString(7, v.getVehType());
  63.                     insertUpdateVehicle.setString(8, v.getVehBody());
  64.                     insertUpdateVehicle.setString(9, v.getVehEngine());
  65.                     insertUpdateVehicle.setString(10, v.getVehRestraint());
  66.                     insertUpdateVehicle.setString(11, v.getVehModel());
  67.                     insertUpdateVehicle.setInt(12, v.getVehYear());
  68.                     insertUpdateVehicle.setString(13, v.getVehPlant());
  69.                     insertUpdateVehicle.setString(14, v.getVehSerialNumber());
  70.                     insertUpdateVehicle.setDate(15, new java.sql.Date(v.getVehFileName().getTime()));
  71.                     insertUpdateVehicle.addBatch();
  72.  
  73.                     String callProcedureUpdateRepair = "{call INSERT_OR_UPDATE_REPAIR(?,?,?,?,?,?)}";
  74.                     CallableStatement insertUpdateRepair = con.prepareCall(callProcedureUpdateRepair);
  75.                     for (Repair r : repairs) {
  76.                         insertUpdateRepair.setInt(1, r.getReOldId());
  77.                         insertUpdateRepair.setInt(2, r.getReVehOldId());
  78.                         insertUpdateRepair.setInt(3, r.getReDetId());
  79.                         insertUpdateRepair.setInt(4, r.getReShopId());
  80.                         insertUpdateRepair.setDate(5, new java.sql.Date(r.getReBillDate().getTime()));
  81.                         insertUpdateRepair.setDate(6, new java.sql.Date(r.getReFileName().getTime()));
  82.                         insertUpdateRepair.addBatch();
  83.                     }
  84.                     insertUpdateRepair.executeBatch();
  85.                     insertUpdateRepair.close();
  86.                 }
  87.                 insertUpdateVehicle.executeBatch();
  88.                 insertUpdateVehicle.close();
  89.             }
  90.             insertUpdateCustomer.executeBatch();
  91.             insertUpdateCustomer.close();
  92.            
  93.             con.setAutoCommit(true);
  94.         }
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement