Advertisement
Guest User

project

a guest
Aug 23rd, 2017
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package server;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.util.ArrayList;
  8.  
  9. import program.Employee;
  10. import program.Department;
  11. import program.EmployeeList;
  12. import program.Event;
  13. import program.Model;
  14. import statePattern.EventState;
  15.  
  16.  
  17. public class ServerModelManager implements Model
  18. {
  19.    private Connection conn;
  20.    
  21.    public ServerModelManager()
  22.    {
  23.       System.out.println("Server started");
  24.      
  25.       try
  26.       {
  27.          Class.forName("org.postgresql.Driver");
  28.          
  29.          conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "postgres", "admin");
  30.          
  31.          conn.setSchema("CourseAssign");
  32.          
  33.          Thread thread = new Thread(new ServerConnection(this));
  34.          
  35.          thread.start();
  36.       }
  37.       catch (ClassNotFoundException e)
  38.       {
  39.          // TODO Auto-generated catch block
  40.          e.printStackTrace();
  41.       }
  42.       catch (SQLException e)
  43.       {
  44.          // TODO Auto-generated catch block
  45.          e.printStackTrace();
  46.       }
  47.    }
  48.    
  49.    public static String reverse(String s)
  50.    {
  51.       return s.charAt(7) + "" + s.charAt(8) + "" + s.charAt(9) + s.charAt(10) + "-" + s.charAt(3) + s.charAt(4) + "-" + s.charAt(0) + s.charAt(1);  
  52.    }
  53.    
  54.    public boolean existentUser(String userName)
  55.    {
  56.       try
  57.       {
  58.          PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE username = ?");
  59.          
  60.          stmt.setString(1, userName);
  61.          
  62.          ResultSet rS = stmt.executeQuery();
  63.          
  64.          return rS.next();
  65.       }
  66.       catch (SQLException e)
  67.       {
  68.          // TODO Auto-generated catch block
  69.          e.printStackTrace();
  70.       }
  71.       return false;
  72.    }
  73.    
  74.    public String getUserPassword(String userName)
  75.    {
  76.       try
  77.       {
  78.          PreparedStatement stmt = conn.prepareStatement("SELECT password FROM users WHERE username = ?");
  79.          
  80.          stmt.setString(1, userName);
  81.          
  82.          ResultSet rS = stmt.executeQuery();
  83.          
  84.          rS.next();
  85.          
  86.          return rS.getString(1);
  87.       }
  88.       catch (SQLException e)
  89.       {
  90.          // TODO Auto-generated catch block
  91.          e.printStackTrace();
  92.       }
  93.      
  94.       return null;
  95.    }
  96.    
  97.    public void addEmployee(Employee emp)
  98.    {
  99.       try
  100.       {
  101.          PreparedStatement stmt = conn.prepareStatement("INSERT INTO users (cpr, username, password, role, name, birthday, email, depname, wages) VALUES (?, ?, ?, ?, ?, ?::date, ?, ?, ?)");
  102.        
  103.          stmt.setString(1, emp.getCpr());
  104.          stmt.setString(2, emp.getUserName());
  105.          stmt.setString(3, emp.getPassword());
  106.          stmt.setString(4, emp.getRole());
  107.          stmt.setString(5, emp.getName());
  108.          stmt.setString(6, emp.getBirthYear() + "-" + emp.getBirthMonth() + "-" + emp.getBirthDate());
  109.          stmt.setString(7, emp.getEmail());
  110.          stmt.setString(8, emp.getDepartment());
  111.          stmt.setInt(9, emp.getWages());
  112.          
  113.  
  114.          
  115.          stmt.executeUpdate();
  116.       }
  117.       catch (SQLException e)
  118.       {
  119.          // TODO Auto-generated catch block
  120.          e.printStackTrace();
  121.       }
  122.    }
  123.    
  124.    public EmployeeList getEmployeesList()
  125.    {
  126.       try
  127.       {
  128.          EmployeeList list = new EmployeeList();
  129.          
  130.          PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users");
  131.          
  132.          ResultSet rS = stmt.executeQuery();
  133.          
  134.          while (rS.next()) {
  135.          
  136.             Employee employee = new Employee();
  137.            
  138.             employee.setCpr(rS.getString(1));
  139.             employee.setUserName(rS.getString(2));
  140.             employee.setPassword(rS.getString(3));
  141.             employee.setRole(rS.getString(4));
  142.             employee.setName(rS.getString(5));
  143.             employee.setBirthDate((rS.getString(6).charAt(8) - 48) * 10 + rS.getString(6).charAt(9) - 48);
  144.             employee.setBirthMonth((rS.getString(6).charAt(5) - 48) * 10 + rS.getString(6).charAt(6) - 48);
  145.             employee.setBirthYear((rS.getString(6).charAt(0) - 48) * 1000 + (rS.getString(6).charAt(1) - 48) * 100 + (rS.getString(6).charAt(2) - 48) * 10 + rS.getString(6).charAt(3) - 48);
  146.             employee.setEmail(rS.getString(7));
  147.             employee.setDepartment(rS.getString(8));
  148.             employee.setWages(rS.getInt(9));
  149.            
  150.             list.addEmployee(employee);
  151.          
  152.          }
  153.          
  154.          return list;
  155.       }
  156.       catch (SQLException e)
  157.       {
  158.          // TODO Auto-generated catch block
  159.          e.printStackTrace();
  160.       }
  161.      
  162.       return new EmployeeList();
  163.    }
  164.    /*
  165.    public ArrayList<Department> getDepartmentsList()
  166.    {
  167.       try
  168.       {
  169.           ArrayList<Department> list = new ArrayList<Department>();
  170.          
  171.          PreparedStatement stmt = conn.prepareStatement("SELECT * FROM department");
  172.          
  173.          ResultSet rS = stmt.executeQuery();
  174.          
  175.          while (rS.next()) {
  176.          
  177.              Department department = new Department();
  178.            
  179.            
  180.              department.setDepNumber(rS.getInt(1));
  181.              department.setDepName(rS.getString(2));
  182.              department.setDepCountry(rS.getString(3));
  183.              department.setDepCity(rS.getString(4));
  184.  
  185.            
  186.             list.add(department);
  187.          
  188.          }
  189.          
  190.          return list;
  191.       }
  192.       catch (SQLException e)
  193.       {
  194.          // TODO Auto-generated catch block
  195.          e.printStackTrace();
  196.       }
  197.      
  198.       return new ArrayList<Department>();
  199.    }
  200.    */
  201.    public ArrayList<Department> getDepartmentsList()
  202.    {
  203.       try
  204.       {
  205.           ArrayList<Department> list = new ArrayList<Department>();
  206.          
  207.          PreparedStatement stmt = conn.prepareStatement("SELECT * FROM department");
  208.          
  209.          ResultSet rS = stmt.executeQuery();
  210.          
  211.          while (rS.next()) {
  212.          
  213.              Department department = new Department();
  214.            
  215.            
  216.              department.setDepNumber(rS.getInt(1));
  217.              department.setDepName(rS.getString(2));
  218.              department.setDepCountry(rS.getString(3));
  219.              department.setDepCity(rS.getString(4));
  220.  
  221.            
  222.             list.add(department);
  223.          
  224.          }
  225.          
  226.          return list;
  227.       }
  228.       catch (SQLException e)
  229.       {
  230.          // TODO Auto-generated catch block
  231.          e.printStackTrace();
  232.       }
  233.      
  234.       return new ArrayList<Department>();
  235.    }
  236.    
  237.    public ArrayList<Event> getEventList()
  238.    {
  239.       try
  240.       {
  241.           ArrayList<Event> list = new ArrayList<Event>();
  242.          
  243.          PreparedStatement stmt = conn.prepareStatement("SELECT * FROM event");
  244.          
  245.          ResultSet rS = stmt.executeQuery();
  246.          
  247.          while (rS.next()) {
  248.          
  249.              Event event = new Event();
  250.            
  251.              event.setEventNum(rS.getInt(1));
  252.              event.setName(rS.getString(2));
  253.              event.setStartHour(rS.getInt(3));
  254.              event.setEndHour(rS.getInt(4));
  255.              event.setStartMinute(rS.getInt(5));
  256.              event.setEndMinute(rS.getInt(6));
  257.              event.setStartDate((rS.getString(7).charAt(8) - 48) * 10 + rS.getString(7).charAt(9) - 48);
  258.              event.setStartMonth((rS.getString(7).charAt(5) - 48) * 10 + rS.getString(7).charAt(6) - 48);
  259.              event.setStartYear((rS.getString(7).charAt(0) - 48) * 1000 + (rS.getString(7).charAt(1) - 48) * 100 + (rS.getString(7).charAt(2) - 48) * 10 + rS.getString(7).charAt(3) - 48);
  260.              event.setEndDate((rS.getString(8).charAt(8) - 48) * 10 + rS.getString(8).charAt(9) - 48);
  261.              event.setEndMonth((rS.getString(8).charAt(5) - 48) * 10 + rS.getString(8).charAt(6) - 48);
  262.              event.setEndYear((rS.getString(8).charAt(0) - 48) * 1000 + (rS.getString(8).charAt(1) - 48) * 100 + (rS.getString(8).charAt(2) - 48) * 10 + rS.getString(8).charAt(3) - 48);
  263. // fuuuck            event.setState(rS.getString(9));
  264.              event.setDepartment(rS.getString(10));
  265.  
  266.  
  267.              
  268.              
  269.              
  270.             list.add(event);
  271.          
  272.          }
  273.          
  274.          return list;
  275.       }
  276.       catch (SQLException e)
  277.       {
  278.          // TODO Auto-generated catch block
  279.          e.printStackTrace();
  280.       }
  281.      
  282.       return new ArrayList<Event>();
  283.    }
  284.    
  285.    
  286.    
  287.    
  288.    
  289.    
  290. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement