Advertisement
Guest User

Untitled

a guest
Mar 11th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.71 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. import org.slf4j.Logger;
  9. import org.slf4j.LoggerFactory;
  10.  
  11. import java.sql.*;
  12. import java.util.List;
  13.  
  14. /**
  15.  * Contains logic of inserting data into database
  16.  */
  17. public class Dao {
  18.     private Logger log = LoggerFactory.getLogger(Dao.class.getName());
  19.     private String connectionString;
  20.     private String userName;
  21.     private String password;
  22.  
  23.     public Dao(String connectionString, String userName, String password) {
  24.         this.connectionString = connectionString;
  25.         this.userName = userName;
  26.         this.password = password;
  27.     }
  28.  
  29.     /**
  30.      * Methods inserts files Customer, Vehicle and Repair into database.
  31.      * @param triplet Triplet to insert into database
  32.      */
  33.     public void insertIntoDatabase(Triplet triplet) {
  34.         DatabaseConnection db = new DatabaseConnection();
  35.         Connection con = null;
  36.         try {
  37.             con = db.getConnection(connectionString, userName, password);
  38.             List<Customer> customers = triplet.getCustomers();
  39.             List<Vehicle> vehicles = triplet.getVehicles();
  40.             List<Repair> repairs = triplet.getRepairs();
  41.             con.setAutoCommit(false);
  42.             String selectCustomer = "SELECT CU_OLD_ID FROM CUSTOMER WHERE CU_OLD_ID=?";
  43.             String insertCustomer = "INSERT INTO CUSTOMER VALUES (?,?,?,?,?,?,?)";
  44.             String updateCustomer = "UPDATE CUSTOMER SET CU_NAME=?,CU_TYPE=?,CU_ORIGIN_DATE=?,CU_REG_DATE=?,CU_PHONE_NUMBER=? WHERE CU_OLD_ID = ?";
  45.             for (Customer c : customers) {
  46.                 PreparedStatement selectCustomerStatement = con.prepareStatement(selectCustomer);
  47.                 selectCustomerStatement.setInt(1, c.getCuOldId());
  48.                 ResultSet id = selectCustomerStatement.executeQuery();
  49.                 if (id.next()) {
  50.                     PreparedStatement updateCustomerStatement = con.prepareStatement(updateCustomer);
  51.                     updateCustomerStatement.setString(1, c.getCuName());
  52.                     updateCustomerStatement.setString(2, c.getCuType().toString());
  53.                     updateCustomerStatement.setDate(3, new java.sql.Date(c.getCuOriginDate().getTime()));
  54.                     updateCustomerStatement.setDate(4, new java.sql.Date(c.getCuRegDate().getTime()));
  55.                     updateCustomerStatement.setInt(5, c.getCuPhoneNumber());
  56.                     updateCustomerStatement.setInt(6, c.getCuOldId());
  57.                     updateCustomerStatement.executeUpdate();
  58.                     updateCustomerStatement.close();
  59.                     id.close();
  60.                 } else {
  61.                     PreparedStatement insertCustomerStatement = con.prepareStatement(insertCustomer);
  62.                     insertCustomerStatement.setInt(1, c.getCuOldId());
  63.                     insertCustomerStatement.setString(2, c.getCuName());
  64.                     insertCustomerStatement.setString(3, c.getCuType().toString());
  65.                     insertCustomerStatement.setDate(4, new java.sql.Date(c.getCuOriginDate().getTime()));
  66.                     insertCustomerStatement.setDate(5, new java.sql.Date(c.getCuRegDate().getTime()));
  67.                     insertCustomerStatement.setInt(6, c.getCuPhoneNumber());
  68.                     insertCustomerStatement.setDate(7, new java.sql.Date(c.getCuFileDate().getTime()));
  69.                     insertCustomerStatement.executeUpdate();
  70.                     insertCustomerStatement.close();
  71.                 }
  72.                 selectCustomerStatement.close();
  73.             }
  74.  
  75.             String selectVehicle = "SELECT VEH_OLD_ID FROM VEHICLE WHERE VEH_OLD_ID=?";
  76.             String insertVehicle = "INSERT INTO VEHICLE VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
  77.             String updateVehicle = "UPDATE VEHICLE SET VEH_CU_ID=?,VEH_VIN=?,VEH_REG_DATE=?,VEH_REG_COUNTRY=?,VEH_MANUFACTURER=?,VEH_TYPE=?,VEH_BODY=?,VEH_ENGINE=?,VEH_RESTRAINT=?,VEH_MODEL=?,VEH_YEAR=?,VEH_PLANT=?,VEH_SERIAL_NUMBER=? WHERE VEH_OLD_ID=?";
  78.             for(Vehicle v : vehicles) {
  79.                 PreparedStatement selectVehicleStatement = con.prepareStatement(selectVehicle);
  80.                 selectVehicleStatement.setInt(1, v.getVehOldId());
  81.                 ResultSet id = selectVehicleStatement.executeQuery();
  82.                 if (id.next()) {
  83.                     PreparedStatement updateVehicleStatement = con.prepareCall(updateVehicle);
  84.                     updateVehicleStatement.setInt(1, v.getVehCuId());
  85.                     updateVehicleStatement.setString(2, v.getVehVin());
  86.                     updateVehicleStatement.setDate(3, new java.sql.Date(v.getVehRegDate().getTime()));
  87.                     updateVehicleStatement.setString(4, v.getVehRegCountry());
  88.                     updateVehicleStatement.setString(5, v.getVehManufacturer());
  89.                     updateVehicleStatement.setString(6, v.getVehType());
  90.                     updateVehicleStatement.setString(7, v.getVehBody());
  91.                     updateVehicleStatement.setString(8, v.getVehEngine());
  92.                     updateVehicleStatement.setString(9, v.getVehRestraint());
  93.                     updateVehicleStatement.setString(10, v.getVehModel());
  94.                     updateVehicleStatement.setInt(11, v.getVehYear());
  95.                     updateVehicleStatement.setString(12, v.getVehPlant());
  96.                     updateVehicleStatement.setString(13, v.getVehSerialNumber());
  97.                     updateVehicleStatement.setInt(14, v.getVehOldId());
  98.                     updateVehicleStatement.executeUpdate();
  99.                     updateVehicleStatement.close();
  100.                     id.close();
  101.                 } else {
  102.                     PreparedStatement insertVehicleStatement = con.prepareCall(insertVehicle);
  103.                     insertVehicleStatement.setInt(1, v.getVehOldId());
  104.                     insertVehicleStatement.setInt(2, v.getVehCuId());
  105.                     insertVehicleStatement.setString(3, v.getVehVin());
  106.                     insertVehicleStatement.setDate(4, new java.sql.Date(v.getVehRegDate().getTime()));
  107.                     insertVehicleStatement.setString(5, v.getVehRegCountry());
  108.                     insertVehicleStatement.setString(6, v.getVehManufacturer());
  109.                     insertVehicleStatement.setString(7, v.getVehType());
  110.                     insertVehicleStatement.setString(8, v.getVehBody());
  111.                     insertVehicleStatement.setString(9, v.getVehEngine());
  112.                     insertVehicleStatement.setString(10, v.getVehRestraint());
  113.                     insertVehicleStatement.setString(11, v.getVehModel());
  114.                     insertVehicleStatement.setInt(12, v.getVehYear());
  115.                     insertVehicleStatement.setString(13, v.getVehPlant());
  116.                     insertVehicleStatement.setString(14, v.getVehSerialNumber());
  117.                     insertVehicleStatement.setDate(15, new java.sql.Date(v.getVehFileName().getTime()));
  118.                     insertVehicleStatement.executeUpdate();
  119.                     insertVehicleStatement.close();
  120.                 }
  121.                 selectVehicleStatement.close();
  122.             }
  123.  
  124.             String selectRepair = "SELECT RE_OLD_ID FROM REPAIR WHERE RE_OLD_ID=?";
  125.             String insertRepair = "INSERT INTO REPAIR VALUES (?,?,?,?,?,?)";
  126.             String updateRepair = "UPDATE REPAIR SET RE_VEH_OLD_ID=?,RE_RD_ID=?,RE_RS_ID=?,RE_BILL_DATE=? WHERE RE_OLD_ID=?";
  127.             for (Repair r : repairs) {
  128.                 PreparedStatement selectRepairStatement = con.prepareStatement(selectRepair);
  129.                 selectRepairStatement.setInt(1, r.getReOldId());
  130.                 ResultSet id = selectRepairStatement.executeQuery();
  131.                 if (id.next()) {
  132.                     PreparedStatement updateRepairStatement = con.prepareCall(updateRepair);
  133.                     updateRepairStatement.setInt(1, r.getReVehOldId());
  134.                     updateRepairStatement.setInt(2, r.getReDetId());
  135.                     updateRepairStatement.setInt(3, r.getReShopId());
  136.                     updateRepairStatement.setDate(4, new java.sql.Date(r.getReBillDate().getTime()));
  137.                     updateRepairStatement.setInt(5, r.getReOldId());
  138.                     updateRepairStatement.executeUpdate();
  139.                     updateRepairStatement.close();
  140.                     id.close();
  141.                 } else {
  142.                     PreparedStatement insertRepairStatement = con.prepareCall(insertRepair);
  143.                     insertRepairStatement.setInt(1, r.getReOldId());
  144.                     insertRepairStatement.setInt(2, r.getReVehOldId());
  145.                     insertRepairStatement.setInt(3, r.getReDetId());
  146.                     insertRepairStatement.setInt(4, r.getReShopId());
  147.                     insertRepairStatement.setDate(5, new java.sql.Date(r.getReBillDate().getTime()));
  148.                     insertRepairStatement.setDate(6, new java.sql.Date(r.getReFileName().getTime()));
  149.                     insertRepairStatement.executeUpdate();
  150.                     insertRepairStatement.close();
  151.                 }
  152.                 selectRepairStatement.close();
  153.             }
  154.             log.info("All data have been successfully inserted into the database");
  155.             con.commit();
  156.             con.close();
  157.         } catch (SQLException e) {
  158.             e.printStackTrace();
  159.             log.error("Could not create connection with the database");
  160.             if (con != null) {
  161.                 try {
  162.                     con.rollback();
  163.                 } catch (SQLException e1) {
  164.                     log.error("There's been an error with rollback");
  165.                 }
  166.             }
  167.         }
  168.     }
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement