Advertisement
Guest User

Untitled

a guest
Mar 10th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.30 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) {
  31.         DatabaseConnection db = new DatabaseConnection();
  32.         Connection con = null;
  33.         try {
  34.             con = db.getConnection(connectionString, userName, password);
  35.             List<Customer> customers = triplet.getCustomers();
  36.             List<Vehicle> vehicles = triplet.getVehicles();
  37.             List<Repair> repairs = triplet.getRepairs();
  38.             con.setAutoCommit(false);
  39.             String selectCustomer = "SELECT CU_OLD_ID FROM CUSTOMER WHERE CU_OLD_ID=?";
  40.             String insertCustomer = "INSERT INTO CUSTOMER VALUES (?,?,?,?,?,?,?)";
  41.             String updateCustomer = "UPDATE CUSTOMER SET CU_NAME=?,CU_TYPE=?,CU_ORIGIN_DATE=?,CU_REG_DATE=?,CU_PHONE_NUMBER=? WHERE CU_OLD_ID = ?";
  42.             PreparedStatement insertCustomerStatement = null;
  43.             PreparedStatement selectCustomerStatement = null;
  44.             PreparedStatement updateCustomerStatement = null;
  45.             for (Customer c : customers) {
  46.                 selectCustomerStatement = con.prepareStatement(selectCustomer);
  47.                 selectCustomerStatement.setInt(1, c.getCuOldId());
  48.                 ResultSet id = selectCustomerStatement.executeQuery();
  49.                 if (id.next()) {
  50.                     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.                 } else {
  59.                     insertCustomerStatement = con.prepareStatement(insertCustomer);
  60.                     insertCustomerStatement.setInt(1, c.getCuOldId());
  61.                     insertCustomerStatement.setString(2, c.getCuName());
  62.                     insertCustomerStatement.setString(3, c.getCuType().toString());
  63.                     insertCustomerStatement.setDate(4, new java.sql.Date(c.getCuOriginDate().getTime()));
  64.                     insertCustomerStatement.setDate(5, new java.sql.Date(c.getCuRegDate().getTime()));
  65.                     insertCustomerStatement.setInt(6, c.getCuPhoneNumber());
  66.                     insertCustomerStatement.setDate(7, new java.sql.Date(c.getCuFileDate().getTime()));
  67.                     insertCustomerStatement.executeUpdate();
  68.                 }
  69.  
  70.  
  71. //                if(++count % batchSize == 0) {
  72. //                    insertUpdateCustomer.executeBatch();
  73. //                }
  74.             }
  75.             //insertCustomerStatement.executeBatch();
  76.  
  77.             String callProcedureUpdateVehicle = "{call INSERT_OR_UPDATE_VEHICLE(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}";
  78.             CallableStatement insertUpdateVehicle = null;
  79.             for(Vehicle v : vehicles) {
  80.                 insertUpdateVehicle = con.prepareCall(callProcedureUpdateVehicle);
  81.                 insertUpdateVehicle.setInt(1, v.getVehOldId());
  82.                 insertUpdateVehicle.setInt(2, v.getVehCuId());
  83.                 insertUpdateVehicle.setString(3, v.getVehVin());
  84.                 insertUpdateVehicle.setDate(4, new java.sql.Date(v.getVehRegDate().getTime()));
  85.                 insertUpdateVehicle.setString(5, v.getVehRegCountry());
  86.                 insertUpdateVehicle.setString(6, v.getVehManufacturer());
  87.                 insertUpdateVehicle.setString(7, v.getVehType());
  88.                 insertUpdateVehicle.setString(8, v.getVehBody());
  89.                 insertUpdateVehicle.setString(9, v.getVehEngine());
  90.                 insertUpdateVehicle.setString(10, v.getVehRestraint());
  91.                 insertUpdateVehicle.setString(11, v.getVehModel());
  92.                 insertUpdateVehicle.setInt(12, v.getVehYear());
  93.                 insertUpdateVehicle.setString(13, v.getVehPlant());
  94.                 insertUpdateVehicle.setString(14, v.getVehSerialNumber());
  95.                 insertUpdateVehicle.setDate(15, new java.sql.Date(v.getVehFileName().getTime()));
  96.                 insertUpdateVehicle.addBatch();
  97.  
  98.                 //insertUpdateVehicle.addBatch();
  99. //                if(++count % batchSize == 0) {
  100. //                    insertUpdateVehicle.executeBatch();
  101. //                }
  102.             }
  103.             insertUpdateVehicle.executeBatch();
  104.  
  105.             String callProcedureUpdateRepair = "{call INSERT_OR_UPDATE_REPAIR(?,?,?,?,?,?)}";
  106.             CallableStatement insertUpdateRepair = null;
  107.             for (Repair r : repairs) {
  108.                 insertUpdateRepair = con.prepareCall(callProcedureUpdateRepair);
  109.                 insertUpdateRepair.setInt(1, r.getReOldId());
  110.                 insertUpdateRepair.setInt(2, r.getReVehOldId());
  111.                 insertUpdateRepair.setInt(3, r.getReDetId());
  112.                 insertUpdateRepair.setInt(4, r.getReShopId());
  113.                 insertUpdateRepair.setDate(5, new java.sql.Date(r.getReBillDate().getTime()));
  114.                 insertUpdateRepair.setDate(6, new java.sql.Date(r.getReFileName().getTime()));
  115.                 insertUpdateRepair.addBatch();
  116.  
  117.                 //insertUpdateRepair.addBatch();
  118. //                if(++count % batchSize == 0) {
  119. //                    insertUpdateRepair.executeBatch();
  120. //                }
  121.             }
  122.             insertUpdateRepair.executeBatch();
  123.             if (insertCustomerStatement != null) {
  124.                 insertCustomerStatement.close();
  125.             }
  126.             if (updateCustomerStatement != null) {
  127.                 updateCustomerStatement.close();
  128.             }
  129.             if (selectCustomerStatement != null) {
  130.                 selectCustomerStatement.close();
  131.             }
  132.             if (selectCustomerStatement != null) {
  133.                 insertUpdateVehicle.close();
  134.             }
  135.             if (selectCustomerStatement != null) {
  136.                 insertUpdateRepair.close();
  137.             }
  138.  
  139.             con.commit();
  140.             con.close();
  141.         } catch (SQLException e) {
  142.             e.printStackTrace();
  143.             if (con != null) {
  144.                 try {
  145.                     con.rollback();
  146.                 } catch (SQLException e1) {
  147.                     e1.printStackTrace();
  148.                 }
  149.             }
  150.         }
  151.     }
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement