AarellanoH

Untitled

Mar 29th, 2016
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.45 KB | None | 0 0
  1. package first;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.util.ArrayList;
  10. import java.util.HashMap;
  11.  
  12. public class MySQLAccess {
  13.     private Connection connection = null;
  14.     private Statement statement = null;
  15.     private PreparedStatement preparedStatement = null;
  16.     private ResultSet resultSet = null;
  17.     private HashMap<Integer, Employee> employeeHashMap = new HashMap<Integer, Employee>();
  18.     private HashMap<Integer, LeaveRequest> leaveRequestsHashMap = new HashMap<Integer, LeaveRequest>();
  19.  
  20.     String sql;
  21.  
  22.     final String idField = "employee_id";
  23.     final String firstNameField = "first_name";
  24.     final String lastNameField = "last_name";
  25.     final String emailField = "email";
  26.     final String managerField = "manager";
  27.     final String availableAnnualLeavesField = "available_annual_leaves";
  28.     final String availableSickLeavesField = "available_sick_leaves";
  29.     final String employeeIdField = "employee_id";
  30.     final String startDateField = "start_date";
  31.     final String endDateField = "end_date";
  32.     final String returnDateField = "return_date";
  33.     final String numberOfDaysField = "number_of_days";
  34.     final String typeOfLeaveField = "type_of_leave";
  35.     final String statusField = "status";
  36.     final String managerRefusalCommentField = "manager_refusal_comment";
  37.     final String hrRefusalCommentField = "hr_refusal_comment";
  38.  
  39.  
  40.     public void readDataBase() throws Exception {
  41.         try {
  42.             // This will load the MySQL driver, each DB has its own driver
  43.             Class.forName("com.mysql.jdbc.Driver");
  44.             // Setup the connection with the DB
  45.             connection = DriverManager
  46.                     .getConnection("jdbc:mysql://localhost/hr?"
  47.                             + "user=user1&password=user1");
  48.  
  49.             // Statements allow to issue SQL queries to the database
  50.             statement = connection.createStatement();
  51.             // Result set get the result of the SQL query
  52.             sql = "SELECT * FROM hr.employees";
  53.             sql = "SELECT * FROM hr.leave_requests";
  54.  
  55.             resultSet = statement.executeQuery(sql);
  56.             System.out.println(getLeaveRequestsHashMap(resultSet));
  57. //            writeResultSet(resultSet);
  58.  
  59.  
  60.             System.out.println("All: " + employeeHashMap.toString());
  61.  
  62.         } catch (Exception e) {
  63.             throw e;
  64.         } finally {
  65.             close();
  66.         }
  67.  
  68.     }
  69.  
  70.     private HashMap<Integer, Employee> getEmployeeHashMap (ResultSet resultSet) throws SQLException{
  71.         HashMap<Integer, Employee> employeeHashMap = new HashMap<Integer, Employee>();
  72.         while (resultSet.next()){
  73.             Employee employee = new Employee();
  74.             employee.setId(resultSet.getInt(idField));
  75.             employee.setFirstName(resultSet.getString(firstNameField));
  76.             employee.setLastName(resultSet.getString(lastNameField));
  77.             employee.setEmail(resultSet.getString(emailField));
  78.             employee.setManager(resultSet.getString(managerField));
  79.             employee.setAvailableAnnualLeaves(resultSet.getInt(availableAnnualLeavesField));
  80.             employee.setAvailableSickLeaves(resultSet.getInt(availableSickLeavesField));
  81.             employeeHashMap .put(employee.getId(), employee);
  82.         }
  83.         return employeeHashMap;
  84.     }
  85.  
  86.     private HashMap<Integer, ArrayList<LeaveRequest>> getLeaveRequestsHashMap (ResultSet resultSet) throws SQLException{
  87.         HashMap<Integer, ArrayList<LeaveRequest>> leaveRequestHashMap = new HashMap<Integer, ArrayList<LeaveRequest>>();
  88.         while (resultSet.next()){
  89.             LeaveRequest leaveRequest = new LeaveRequest();
  90.             leaveRequest.setEmployeeId(resultSet.getInt(employeeIdField));
  91.             leaveRequest.setStartDate(resultSet.getDate(startDateField));
  92.             leaveRequest.setEndDate(resultSet.getDate(endDateField));
  93.             leaveRequest.setReturnDate(resultSet.getDate(returnDateField));
  94.             leaveRequest.setNumberOfDays(resultSet.getInt(numberOfDaysField));
  95.             leaveRequest.setTypeOfLeave(resultSet.getString(typeOfLeaveField));
  96.             leaveRequest.setStatus(resultSet.getString(statusField));
  97.             leaveRequest.setManagerRefusalComment(resultSet.getString(managerRefusalCommentField));
  98.             leaveRequest.setHrRefusalComment(resultSet.getString(hrRefusalCommentField));
  99.  
  100.             if(leaveRequestHashMap.containsKey(leaveRequest.getEmployeeId())){
  101.                 leaveRequestHashMap.get(leaveRequest.getEmployeeId()).add(leaveRequest);
  102.             }
  103.             else{
  104.                 leaveRequestHashMap.put(leaveRequest.getEmployeeId(), new ArrayList<LeaveRequest>());
  105.                 leaveRequestHashMap.get(leaveRequest.getEmployeeId()).add(leaveRequest);
  106.             }
  107.         }
  108.         return leaveRequestHashMap;
  109.     }
  110.  
  111.     private void writeResultSet(ResultSet resultSet) throws SQLException {
  112.         // ResultSet is initially before the first data set
  113.         while (resultSet.next()) {
  114.             // It is possible to get the columns via name
  115.             // also possible to get the columns via the column number
  116.             // which starts at 1
  117.             // e.g. resultSet.getSTring(2);
  118.             Employee employee = new Employee();
  119.             employee.setId(resultSet.getInt(idField));
  120.             employee.setFirstName(resultSet.getString(firstNameField));
  121.             employee.setLastName(resultSet.getString(lastNameField));
  122.             employee.setEmail(resultSet.getString(emailField));
  123.             employee.setManager(resultSet.getString(managerField));
  124.             employee.setAvailableAnnualLeaves(resultSet.getInt(availableAnnualLeavesField));
  125.             employee.setAvailableSickLeaves(resultSet.getInt(availableSickLeavesField));
  126.             employeeHashMap.put(employee.getId(), employee);
  127.             System.out.println(employee.getId() + employee.getFirstName() + employee.getLastName()
  128.                     + employee.getEmail() + employee.getManager() + employee.getAvailableAnnualLeaves()
  129.                     + employee.getAvailableSickLeaves());
  130.         }
  131.     }
  132.  
  133.     // You need to close the resultSet
  134.     private void close() {
  135.         try {
  136.             if (resultSet != null) {
  137.                 resultSet.close();
  138.             }
  139.  
  140.             if (statement != null) {
  141.                 statement.close();
  142.             }
  143.  
  144.             if (connection != null) {
  145.                 connection.close();
  146.             }
  147.         } catch (Exception e) {
  148.             System.out.println(e.toString());
  149.         }
  150.     }
  151.  
  152.     public PreparedStatement insertStatement(String username, String email, String webpage, java.sql.Date date, String summary, String comments){
  153.         PreparedStatement preparedStatement = null;
  154.         try{
  155.             preparedStatement = connection.prepareStatement("INSERT INTO feedback.comments VALUES (DEFAULT, ?, ?, ?, ?, ?, ?)");
  156.             preparedStatement.setString(1, username);
  157.             preparedStatement.setString(2, email);
  158.             preparedStatement.setString(3, webpage);
  159.             preparedStatement.setDate(4, date);
  160.             preparedStatement.setString(5, summary);
  161.             preparedStatement.setString(6, comments);
  162.         }
  163.         catch (Exception e){
  164.             System.out.println("Error en insert: " + e.toString());
  165.         }
  166.         return preparedStatement;
  167.     }
  168.  
  169. }
Add Comment
Please, Sign In to add comment