Advertisement
Guest User

Untitled

a guest
Apr 12th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.93 KB | None | 0 0
  1. public void writeToDB(List<Person> personList){
  2.         Connection con = null;
  3.         Statement stmt = null;
  4.         PreparedStatement preparedStatement = null;
  5.         try {
  6.             Class.forName("oracle.jdbc.driver.OracleDriver");
  7.             con = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","admin","admin");
  8.  
  9.             stmt=con.createStatement();
  10.             if(!stmt.isClosed()){
  11.                 logger.info("Connection established : 127.0.0.1:1521:xe;admin;admin");
  12.             }
  13.             for(Person p : personList){
  14.                 if(!isExistPersonInDB(con, p)){
  15.                     preparedStatement = con.prepareStatement("INSERT INTO PERSON (NAME, AGE, GENDER, RELATIONSHIPSTATUS, COMMUNICATIONSKILL, PLACEHASH) VALUES(?,?,?,?,?, ?)");
  16.                     preparedStatement.setString(1, p.getName());
  17.                     preparedStatement.setInt(2, p.getAge());
  18.                     preparedStatement.setString(3, String.valueOf(p.getGender()));
  19.                     preparedStatement.setString(4, String.valueOf(p.getRelationshipStatus()));
  20.                     preparedStatement.setDouble(5, p.getCommunicationSkill());
  21.                     preparedStatement.setString(6, p.getPlaceHash());
  22.                     preparedStatement.executeQuery();
  23.                     logger.trace("Insert " + p.toString() + " to DB.");
  24.                 }
  25.  
  26.                 if(!isExistPlaceInDB(con, p.getPlace())){
  27.                     preparedStatement = con.prepareStatement("INSERT INTO PLACE(name, iscity, iscrowded, isday, hashcode) VALUES(?,?,?,?,?)");
  28.                     preparedStatement.setString(1, p.getPlace().getName());
  29.                     preparedStatement.setString(2, String.valueOf(p.getPlace().isCity()));
  30.                     preparedStatement.setString(3, String.valueOf(p.getPlace().isCrowded()));
  31.                     preparedStatement.setString(4, String.valueOf(p.getPlace().isDay()));
  32.                     preparedStatement.setString(5, String.valueOf(p.getPlace().hashCo()));
  33.                     preparedStatement.executeQuery();
  34.                     logger.trace("Insert place " + p.getPlaceHash() + " to DB.");
  35.                 }
  36.  
  37.             }
  38.         } catch (ClassNotFoundException e) {
  39.             logger.warn(e.getMessage());
  40.         } catch (SQLException e) {
  41.             logger.warn(e.getMessage());
  42.         }finally {
  43.             try {
  44.                 if(preparedStatement != null){
  45.                     preparedStatement.close();
  46.                 }
  47.                 if(stmt != null){
  48.                     stmt.close();
  49.                 }
  50.  
  51.                 if(con != null){
  52.                     con.close();
  53.                 }
  54.  
  55.                 if(con.isClosed()) logger.info("Connection is closed.");
  56.             } catch (SQLException e) {
  57.                 logger.warn(e.getMessage());
  58.             }
  59.         }
  60.     }
  61.  
  62. public boolean isExistPersonInDB(Connection connection, Person person){
  63.         try {
  64.              PreparedStatement preparedStatement = connection.prepareStatement("select count(*)\n" +
  65.                     "from person\n" +
  66.                     "where name = ? AND age = ? AND placehash = ?");
  67.             preparedStatement.setString(1, person.getName());
  68.             preparedStatement.setInt(2, person.getAge());
  69.             preparedStatement.setString(3, person.getPlaceHash());
  70.             ResultSet resultSet = preparedStatement.executeQuery();
  71.  
  72.  
  73.             resultSet.next();
  74.             int countRecords = resultSet.getInt(1);
  75.  
  76.             if(resultSet != null){
  77.                 resultSet.close();
  78.             }
  79.  
  80.             if(preparedStatement != null){
  81.                 preparedStatement.close();
  82.             }
  83.  
  84.             //connection will be closed in main method ???
  85.             if (countRecords != 0) {
  86.                 logger.trace("Person is not added, it exists in DB : " + person.toString());
  87.                 return true;
  88.             }
  89.         } catch (SQLException e) {
  90.             logger.warn(e.getMessage() + " isExistPersonInDB");
  91.         }
  92.  
  93.  
  94.         return false;
  95.     }
  96.  
  97.     public boolean isExistPlaceInDB(Connection connection, Place place) {
  98.         try {
  99.             Statement st = connection.createStatement();
  100.             ResultSet resultSet = st.executeQuery("SELECT COUNT(*) FROM PLACE WHERE HASHCODE = '" + place.hashCo() + "'");
  101.             resultSet.next();
  102.             int countRecords = resultSet.getInt(1);
  103.  
  104.             if(resultSet != null){
  105.                 resultSet.close();
  106.             }
  107.  
  108.             if(st != null){
  109.                 st.close();
  110.             }
  111.  
  112.             //connection will be closed in main method ?????
  113.             if (countRecords != 0) {
  114.                 logger.trace("Place is not added, it exists in DB : " + place.hashCo());
  115.                 return true;
  116.             }
  117.         } catch (SQLException e) {
  118.             logger.warn(e.getMessage() + " isExistPlaceInDB");
  119.         }
  120.         return false;
  121.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement