Advertisement
Guest User

Untitled

a guest
Aug 19th, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.23 KB | None | 0 0
  1. import javafx.collections.FXCollections;
  2. import javafx.collections.ObservableList;
  3.  
  4. import objects.Staff;
  5.  
  6. import java.sql.*;
  7.  
  8. /**
  9.  * This class for connects with DB
  10.  */
  11. public class CollectionListStaff implements ListStaff{
  12.  
  13.     private ObservableList<Staff> staffList =
  14.             FXCollections.observableArrayList();
  15.  
  16.     /**
  17.      *Add new staff in DB
  18.      */
  19.     @Override
  20.     public void add(Staff staff) {
  21.         try {
  22.             Class.forName("com.mysql.jdbc.Driver");
  23.             String url = "jdbc:mysql://localhost:3306/office_datas?useUnicode=true&characterEncoding=utf-8";
  24.             String login = "root";
  25.             String password = "";
  26.             Connection con = DriverManager.getConnection(url, login, password);
  27.  
  28.                 Statement stmt = con.createStatement();
  29.                 String sql_query = getQuery(0, staff);
  30.                 System.out.println(sql_query);
  31.                 stmt.executeUpdate(sql_query, Statement.RETURN_GENERATED_KEYS);
  32.                 ResultSet rs = stmt.getGeneratedKeys();
  33.                 String lastId = null;
  34.                 while (rs.next()) {
  35.                     lastId = rs.getString(1);
  36.                     System.out.println(rs.getString(1));
  37.                 }
  38.                 sql_query = getQuery(1, null) + lastId;
  39.                 System.out.println(sql_query);
  40.                 rs = stmt.executeQuery(sql_query);
  41.                 for (int i =0; i<100; i++) System.out.print("-");
  42.                 processAnswer(rs);
  43.                 rs.close();
  44.                     stmt.close();
  45.  
  46.             } catch (Exception e) {
  47.                 e.printStackTrace();
  48.             }
  49.         }
  50.  
  51.     /**
  52.      * Add staf in List
  53.      * @param staff
  54.      */
  55.     public void addS(Staff staff){
  56.         staffList.add(staff);
  57.     }
  58.  
  59.     /**
  60.      * Update staff's select in DB
  61.      * @param staff
  62.      */
  63.     @Override
  64.     public void update(Staff staff){
  65.         try {
  66.             Class.forName("com.mysql.jdbc.Driver");
  67.             String url = "jdbc:mysql://localhost:3306/office_datas?useUnicode=true&characterEncoding=utf-8";
  68.             String login = "root";
  69.             String password = "";
  70.  
  71.             try (Connection con = DriverManager.getConnection(url, login, password)) {
  72.                 Statement stmt = con.createStatement();
  73.                 String sql_query = null;
  74.                 sql_query = getQuery(2, staff);
  75.                 System.out.println(sql_query);
  76.                 int rs = stmt.executeUpdate(sql_query);
  77.                 System.out.println(rs);
  78.                 stmt.close();
  79.             }
  80.         } catch (Exception e) {
  81.             e.printStackTrace();
  82.         }
  83.     }
  84.  
  85.     /**
  86.      * Deleted select of staff from db and list
  87.      * @param staff
  88.      */
  89.     @Override
  90.     public void delete(Staff staff) {
  91.         try {
  92.             Class.forName("com.mysql.jdbc.Driver");
  93.             String url = "jdbc:mysql://localhost:3306/office_datas?useUnicode=true&characterEncoding=utf-8";
  94.             String login = "root";
  95.             String password = "";
  96.             Connection con = DriverManager.getConnection(url, login, password);
  97.  
  98.             try {
  99.                 Statement stmt = con.createStatement();
  100.                 String sql_query = getQuery(3, null) +staff.getID_staff();
  101.                 System.out.println(sql_query);
  102.                 int rs = stmt.executeUpdate(sql_query);
  103.                 System.out.println(rs);
  104.                 stmt.close();
  105.             } finally {
  106.                 con.close();
  107.             }
  108.         } catch (Exception e) {
  109.             e.printStackTrace();
  110.         }
  111.         staffList.remove(staff);
  112.     }
  113.  
  114.     public void clearList(){ staffList.clear(); }
  115.  
  116.     public void deleteSelectFromList(Staff staff){ staffList.remove(staff);}
  117.  
  118.     public ObservableList<Staff> getStaffList() {
  119.      return staffList;
  120.     }
  121.  
  122.     /**
  123.      * Download data from DB
  124.      */
  125.     public void filltestData()
  126.     {
  127.         try {
  128.             Class.forName("com.mysql.jdbc.Driver");
  129.             String url = "jdbc:mysql://localhost:3306/office_datas";
  130.             String login = "root";
  131.             String password = "";
  132.             Connection con = DriverManager.getConnection(url, login, password);
  133.             try {
  134.                 Statement stmt = con.createStatement();
  135.                 String sql_query = getQuery(4, null);
  136.                 System.out.println(sql_query);
  137.                 ResultSet rs = stmt.executeQuery(sql_query);
  138.                 for (int i =0; i<100; i++)  System.out.print("-");
  139.                 processAnswer(rs);
  140.                 rs.close();
  141.                 stmt.close();
  142.             } finally {
  143.                 con.close();
  144.             }
  145.         } catch (Exception e) {
  146.             e.printStackTrace();
  147.         }
  148.     }
  149.  
  150.     /**
  151.      * Get text of query for to do query in DB
  152.      * @param mNumber
  153.      * @param staff
  154.      * @return
  155.      */
  156.     private String getQuery(int mNumber, Staff staff){
  157.         switch (mNumber){
  158.             case 0:
  159.                 return "INSERT INTO `staff` (`id_staff`, `surname`, `name`, `father_name`, " +
  160.                         "`d_of_birth`, `num_passp`, `passp_private_num`, " +
  161.                         "`address`, `tel_1`, `tel_2`, `add_info`, `type_work`, `position`) VALUES(NULL,"
  162.                         + "'" + staff.getSurname() + "', "
  163.                         + "'" + staff.getName() + "', "
  164.                         + "'" + staff.getFathName() + "', "
  165.                         + "'" + staff.getDateOfBirth() + "', "
  166.                         + "'" + staff.getNummPass() + "', "
  167.                         + "'" + staff.getNumPrivate() + "', "
  168.                         + "'" + staff.getAddress() + "', "
  169.                         + "'" + staff.getTel1() + "', "
  170.                         + "'" + staff.getTel2() + "', "
  171.                         + "'" + staff.getAddInfo() + "', "
  172.                         + "'" + staff.getTypeWork() + "', "
  173.                         + "'" + staff.getPosition() + "')";
  174.             case 1:
  175.                 return "SELECT * FROM `staff` WHERE `id_staff` = ";
  176.             case 2:
  177.                 return "UPDATE `staff` SET "
  178.                         + "`surname` =  " + "'" + staff.getSurname() + "',"
  179.                         + "`name` =  " + "'" + staff.getName() + "',"
  180.                         + "`father_name` =  " + "'" + staff.getFathName() + "',"
  181.                         + "`num_passp` =  " + "'" + staff.getNummPass() + "',"
  182.                         + "`passp_private_num` =  " + "'" + staff.getNumPrivate() + "',"
  183.                         + "`address` =  " + "'" + staff.getAddress() + "',"
  184.                         + "`tel_1` =  " + "'" + staff.getTel1() + "',"
  185.                         + "`tel_2` =  " + "'" + staff.getTel2() + "',"
  186.                         + "`add_info` =  " + "'" + staff.getAddInfo() + "',"
  187.                         + "`d_of_birth` =  " + "'" + staff.getDateOfBirth() + "',"
  188.                         + "`type_work` =  " + "'" + staff.getTypeWork() + "',"
  189.                         + "`position` =  " + "'" + staff.getPosition() + "'"
  190.                         + " WHERE `staff`.`id_staff` = " + staff.getID_staff();
  191.             case 3:
  192.                 return "DELETE FROM `staff`"
  193.                         + " WHERE `staff`.`id_staff` = ";
  194.             case 4:
  195.                 return "SELECT * FROM `staff`";
  196.         }
  197.         return null;
  198.     }
  199.  
  200.     /**
  201.      * Processing answer from DB
  202.      * @param rs
  203.      * @throws SQLException
  204.      */
  205.     private void processAnswer(ResultSet rs) throws SQLException {
  206.         while (rs.next()) {
  207.             String str = "{ id_staff = " + rs.getString("id_staff")
  208.                     + " || surname = " + rs.getString("surname")
  209.                     + " || name = " + rs.getString("name")
  210.                     + " || father_name = " + rs.getString("father_name")
  211.                     + " || td_of_birth = " + rs.getString("d_of_birth")
  212.                     + " || num_passp = " + rs.getString("num_passp")
  213.                     + " || passp_private_num = " + rs.getString("passp_private_num")
  214.                     + " || address = " + rs.getString("address")
  215.                     + " || tel_1 = " + rs.getString("tel_1")
  216.                     + " || tel_2 = " + rs.getString("tel_2")
  217.                     + " || add_info = " + rs.getString("add_info")
  218.                     + " || type_work = " + rs.getString("type_work")
  219.                     + " || position = " + rs.getString("position") + "; }";
  220.             System.out.println("info: " + str);
  221.  
  222.             staffList.add(new Staff(
  223.                     Integer.parseInt(rs.getString("id_staff")),
  224.                     rs.getString("surname"),
  225.                     rs.getString("name"),
  226.                     rs.getString("father_name"),
  227.                     rs.getString("num_passp"),
  228.                     rs.getString("passp_private_num"),
  229.                     rs.getString("address"),
  230.                     rs.getString("tel_1"),
  231.                     rs.getString("tel_2"),
  232.                     rs.getString("add_info"),
  233.                     Integer.parseInt(rs.getString("type_work")),
  234.                     rs.getString("position"),
  235.                     rs.getString("d_of_birth")));
  236.                     for (int i =0; i<100; i++) System.out.print("-");        }
  237.     }
  238. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement