Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.31 KB | None | 0 0
  1. package be.xios.teacherapp.sql;
  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.ResultSetMetaData;
  8. import java.sql.SQLException;
  9. import java.util.ArrayList;
  10. import java.util.Arrays;
  11.  
  12. import javax.swing.JList;
  13.  
  14. import be.xios.teacherapp.ui.BrowseModify;
  15. import be.xios.teacherapp.variables.classes.Company;
  16. import be.xios.teacherapp.variables.classes.Contact;
  17. import be.xios.teacherapp.variables.classes.Coordinator;
  18. import be.xios.teacherapp.variables.classes.Promotor;
  19. import be.xios.teacherapp.variables.classes.Student;
  20. import be.xios.teacherapp.variables.classes.Super;
  21.  
  22. public class SqlSend {
  23.     private final String DRIVERSTR = "oracle.jdbc.driver.OracleDriver";
  24.     private final String DATABASE_URL = "jdbc:oracle:thin:@localhost:1521:MINIDB";
  25.    
  26.     private Connection connection = null;
  27.     private ResultSet resultSet = null;
  28.    
  29.     private PreparedStatement getAllStudents;
  30.     private PreparedStatement getAllStudentsWithApplication;
  31.     private PreparedStatement getAllInternships;
  32.     private PreparedStatement getAllCompanies;
  33.     private PreparedStatement getAllCoordinators;
  34.     private PreparedStatement getAllContacts;
  35.     private PreparedStatement getAllPromotors;
  36.     private PreparedStatement getAllStudentTags;
  37.     private PreparedStatement getAllCompanyTags;
  38.     private PreparedStatement getAllTags;
  39.     private PreparedStatement getAllEvaluations;
  40.     private PreparedStatement getAllAcceptedStudents;
  41.    
  42.     private PreparedStatement getStudent;
  43.     private PreparedStatement getInternship;
  44.     private PreparedStatement getCompany;
  45.     private PreparedStatement getCoordinator;
  46.     private PreparedStatement getContact;
  47.     private PreparedStatement getPromotor;
  48.     private PreparedStatement getStudentTag;
  49.     private PreparedStatement getCompanyTag;
  50.     private PreparedStatement getTag;
  51.     private PreparedStatement getEvaluation;
  52.    
  53.     public SqlSend() {
  54.         try {
  55.             Class.forName(DRIVERSTR);
  56.         } catch (ClassNotFoundException e) {
  57.             e.printStackTrace();
  58.         }
  59.         try {
  60.             connection = DriverManager.getConnection(DATABASE_URL, "student", "xios");
  61.             resultSet = connection.createStatement().executeQuery("SELECT student_id FROM student");
  62.             createGetAllStatements();
  63.             createGetSingleStatements();
  64.         } catch (SQLException e) {
  65.             e.printStackTrace();
  66.         }
  67.     }
  68.    
  69.     private void createGetAllStatements() throws SQLException{
  70.         getAllStudents = connection.prepareStatement(
  71.                 "SELECT student_id, first_name || ' ' || last_name " +
  72.                 "FROM person p, student s " +
  73.                 "WHERE p.person_id = s.person_id");
  74.         getAllStudentsWithApplication = connection.prepareStatement(
  75.                 "SELECT student_id, first_name || ' ' || last_name " +
  76.                 "FROM student, person " +
  77.                 "WHERE student.person_id = person.person_id " +
  78.                     "AND preliminary_choice IS NOT NULL");
  79.         getAllInternships = connection.prepareStatement(
  80.                 "SELECT internship.internship_id, q1.name || ' ' || internship.name " +
  81.                 "FROM internship, (SELECT name, company_id FROM company) q1 " +
  82.                 "WHERE q1.company_id = internship.company_id");
  83.         getAllCompanies = connection.prepareStatement(
  84.                 "SELECT company_id, name " +
  85.                 "FROM company");
  86.         getAllCoordinators = connection.prepareStatement(
  87.                 "SELECT coordinator_id, first_name || ' ' || last_name " +
  88.                 "FROM person p, coordinator c " +
  89.                 "WHERE p.person_id = c.person_id");
  90.         getAllContacts = connection.prepareStatement(
  91.                 "SELECT contact_id, first_name || ' ' || last_name " +
  92.                 "FROM person p, contact c " +
  93.                 "WHERE p.person_id = c.person_id");
  94.         getAllPromotors = connection.prepareStatement(
  95.                 "SELECT promotor_id, first_name || ' ' || last_name " +
  96.                 "FROM person p, promotor pr " +
  97.                 "WHERE p.person_id = pr.person_id");
  98.         getAllStudentTags = connection.prepareStatement(
  99.                 "SELECT t.tag_id, t.tag_name " +
  100.                 "FROM student_tags s, tags t " +
  101.                 "WHERE student_id = ? " +
  102.                     "AND s.tag_id = t.tag_id");
  103.         getAllCompanyTags = connection.prepareStatement(
  104.                 "SELECT company.company_id, tags.tag_id, name " +
  105.                 "FROM company, company_tags, tags " +
  106.                 "WHERE company.company_id = company_tags.company_id " +
  107.                     "AND company_tags.tag_id = tags.tag_id");
  108.         getAllTags = connection.prepareStatement(
  109.                 "SELECT tag_id, tag_name " +
  110.                 "FROM tags");
  111.         getAllEvaluations = connection.prepareStatement(
  112.                 "SELECT internship_id, first_name || ' ' || last_name || ' ' || evaluation.create_date " +
  113.                 "FROM person, student, internship, evaluation " +
  114.                 "WHERE person.person_id = student.person_id " +
  115.                     "AND student.student_id = internship.student_id " +
  116.                     "AND internship.internship_id = evaluation.internship_id");
  117.         getAllAcceptedStudents = connection.prepareStatement("SELECT student.student_id, first_name, last_name " +
  118.                 " FROM student " +
  119.                 " LEFT JOIN person ON student.person_id = person.person_id " +
  120.                 " LEFT JOIN internship ON internship.student_id = student.student_id " +
  121.                 " WHERE internship.student_id is not null AND student.preliminary_choice is null");
  122.     }
  123.    
  124.     private void createGetSingleStatements() throws SQLException {
  125.         getStudent = connection.prepareStatement(
  126.                 "SELECT  s.student_id, p.first_name, p.last_name, p.address, p.country, p.gsm, p.email, p.title, s.ssn, s.birth_date, post.pc, post.city " +
  127.                 "FROM person p " +
  128.                     "LEFT JOIN student s ON s.person_id = p.person_id " +
  129.                     "LEFT JOIN postalcode post ON p.pc_id = post.pc_id " +
  130.                 "WHERE s.student_id = ?");
  131.         getInternship = connection.prepareStatement(
  132.                 "SELECT internship_id, i.name, create_date, start_date, end_date, position_filled, " +
  133.                     "p1.first_name || ' ' || p1.last_name AS Student, " +
  134.                     "p2.first_name || ' ' || p2.last_name AS Coordinator, " +
  135.                     "p3.first_name || ' ' || p3.last_name AS Contact, " +
  136.                     "p4.first_name || ' ' || p4.last_name AS Promotor " +
  137.                 "FROM internship i, student s, person p1, coordinator c, person p2, contact co, person p3, promotor pr, person p4, company com " +
  138.                 "WHERE internship_id = ? " +
  139.                     "AND i.student_id = s.student_id " +
  140.                     "AND s.person_id = p1.person_id " +
  141.                     "AND i.coordinator_id = c.coordinator_id " +
  142.                     "AND c.person_id = p2.person_id " +
  143.                     "AND i.contact_id = co.contact_id " +
  144.                     "AND co.person_id = p3.person_id " +
  145.                     "AND i.promotor_id = pr.promotor_id " +
  146.                     "AND pr.person_id = p4.person_id " +
  147.                     "AND i.company_id = com.company_id");
  148.         getCompany = connection.prepareStatement(
  149.                 "SELECT name, address, p.pc || ' ' || p.city AS pc, email, phone, url " +
  150.                 "FROM company c, postalcode p " +
  151.                 "WHERE company_id = ?" +
  152.                     "AND c.pc_id = p.pc_id");
  153.         getCoordinator = connection.prepareStatement(
  154.                 "SELECT p.first_name || ' ' || p.last_name AS FullName, course_name " +
  155.                 "FROM coordinator c, person p " +
  156.                 "WHERE coordinator_id = ?" +
  157.                     "AND p.person_id = c.person_id");
  158.         getContact = connection.prepareStatement(
  159.                 "SELECT p.first_name || ' ' || p.last_name AS FullName, co.name " +
  160.                 "FROM contact c, person p, company co " +
  161.                 "WHERE contact_id = ? " +
  162.                     "AND p.person_id = c.person_id " +
  163.                     "AND c.company_id = co.company_id");
  164.         getPromotor = connection.prepareStatement(
  165.                 "SELECT p.first_name || ' ' || p.last_name AS FullName, c.name " +
  166.                 "FROM promotor pr, person p, company c " +
  167.                 "WHERE promotor_id = ? " +
  168.                     "AND p.person_id = pr.person_id " +
  169.                     "AND pr.company_id = c.company_id");
  170.         getStudentTag = connection.prepareStatement(
  171.                 "SELECT * " +
  172.                 "FROM student_tags " +
  173.                 "WHERE tag_id = ? " +
  174.                     "AND person_id = ? ");
  175.         getCompanyTag = connection.prepareStatement(
  176.                 "SELECT * " +
  177.                 "FROM company_tags " +
  178.                 "WHERE tag_id = ? " +
  179.                     "AND company_id = ?");
  180.         getTag = connection.prepareStatement(
  181.                 "SELECT * " +
  182.                 "FROM tags " +
  183.                 "WHERE tag_id = ?");
  184.         getEvaluation = connection.prepareStatement(
  185.                 "SELECT * " +
  186.                 "FROM evaluation " +
  187.                 "WHERE evaluation_id = ?");
  188.     }
  189.    
  190.     private void fillList (JList list) {
  191.         String[][] temp = getData();
  192.         ArrayList<Super> tempData = new ArrayList<Super>();
  193.         for (int i = 0; i < temp.length; i++) {
  194.             tempData.add(new Super(Integer.parseInt(temp[i][0])));
  195.             tempData.get(tempData.size() - 1).setFullName(temp[i][1]);
  196.         }
  197.         list.setListData(tempData.toArray());
  198.     }
  199.    
  200.     private String[][] getData () {
  201.         ArrayList<String[]> returnData = new ArrayList<String[]>();
  202.         try {
  203.             ResultSetMetaData metaData = resultSet.getMetaData();
  204.             int numberOfColumns = metaData.getColumnCount();
  205.             while (resultSet.next()) {
  206.                 String[] temp = new String[numberOfColumns];
  207.                 for (int i = 1; i <= numberOfColumns; i++) {
  208.                     temp[i - 1] = resultSet.getObject(i).toString();
  209.                 }
  210.                 returnData.add(temp);
  211.             }
  212.         } catch (SQLException e) {
  213.             e.printStackTrace();
  214.         }
  215.         //uncomment to print array
  216.         //System.out.println(Arrays.deepToString(returnData.toArray()));
  217.         return returnData.toArray(new String[returnData.size()][]);
  218.     }
  219.  
  220.     public void getAllStudents(JList list) {
  221.         try {
  222.             resultSet = getAllStudents.executeQuery();
  223.         } catch (SQLException e) {
  224.             // TODO Auto-generated catch block
  225.             e.printStackTrace();
  226.         }
  227.         fillList(list);
  228.     }
  229.  
  230.     public void getAllStudentsWithApplication(JList list) {
  231.         try {
  232.             resultSet = getAllStudentsWithApplication.executeQuery();
  233.         } catch (SQLException e) {
  234.             e.printStackTrace();
  235.         }
  236.         fillList(list);
  237.     }
  238.    
  239.     public void getAllInternships(JList list) {
  240.         try {
  241.             resultSet = getAllInternships.executeQuery();
  242.         } catch (SQLException e) {
  243.             e.printStackTrace();
  244.         }
  245.         fillList(list);
  246.     }
  247.    
  248.     public void getAllCompanies(JList list) {
  249.         try {
  250.             resultSet = getAllCompanies.executeQuery();
  251.         } catch (SQLException e) {
  252.             // TODO Auto-generated catch block
  253.             e.printStackTrace();
  254.         }
  255.         fillList(list);
  256.     }
  257.  
  258.     public void getAllCoordinators(JList list) {
  259.         try {
  260.             resultSet = getAllCoordinators.executeQuery();
  261.         } catch (SQLException e) {
  262.             // TODO Auto-generated catch block
  263.             e.printStackTrace();
  264.         }
  265.         fillList(list);
  266.     }
  267.  
  268.     public void getAllContacts(JList list) {
  269.         try {
  270.             resultSet = getAllContacts.executeQuery();
  271.         } catch (SQLException e) {
  272.             e.printStackTrace();
  273.         }
  274.         fillList(list);
  275.     }
  276.  
  277.     public void getAllPromotors(JList list) {
  278.         try {
  279.             resultSet = getAllPromotors.executeQuery();
  280.         } catch (SQLException e) {
  281.             e.printStackTrace();
  282.         }
  283.         fillList(list);
  284.     }
  285.    
  286.     public void getAllAcceptedStudents(JList list) {
  287.         try {
  288.             resultSet = getAllAcceptedStudents.executeQuery();
  289.         } catch (SQLException e) {
  290.             e.printStackTrace();
  291.         }
  292.         fillList(list);
  293.     }
  294.    
  295.     public void getAllStudentTags(int stu_id, BrowseModify r) {
  296.         try {
  297.             getAllStudentTags.setInt(1, stu_id);
  298.             resultSet = getAllStudentTags.executeQuery();
  299.         } catch (SQLException e) {
  300.             e.printStackTrace();
  301.         }
  302.     }
  303.  
  304.     public void getStudent(int stu_id, BrowseModify r){
  305.         try {
  306.             getStudent.setInt(1, stu_id);
  307.             resultSet = getStudent.executeQuery();
  308.             resultSet.next();
  309.  
  310.             ResultSetMetaData metaData = resultSet.getMetaData();
  311.             int numberOfColumns = metaData.getColumnCount();
  312.             String [] a = new String[numberOfColumns];
  313.             for (int i = 0; i < numberOfColumns; i++) {
  314.                 a[i] = (resultSet.getObject(i+1) == null)? "":resultSet.getObject(i+1).toString();
  315.             }
  316.             r.setPrVnaam(a[1]);
  317.             r.setPrFnaam(a[2]);
  318.             r.setPrAdress(a[3]);
  319.             r.setPrCountry(a[4]);
  320.             r.setPrGsm(a[5]);
  321.             r.setPrEmail(a[6]);
  322.             r.setPrTitle(a[7]);
  323.             r.setStuSsn(a[8]);
  324.             r.setStuBirthdate(a[9]);
  325.             r.setPrPostC(a[10]);
  326.             r.validate();
  327.             //uncomment to print student array
  328.             //System.out.println(Arrays.toString(a));
  329.         } catch (SQLException e) {
  330.             // TODO Auto-generated catch block
  331.             e.printStackTrace();
  332.         }
  333.     }
  334.    
  335.     public void getCoordinator(int co_id, BrowseModify r) {
  336.         try {
  337.             getCoordinator.setInt(1, co_id);
  338.             resultSet = getCoordinator.executeQuery();
  339.             resultSet.next();
  340.            
  341.             ResultSetMetaData metaData = resultSet.getMetaData();
  342.             int numberOfColumns = metaData.getColumnCount();
  343.             String [] a = new String[numberOfColumns];
  344.             for (int i = 0; i < numberOfColumns; i++) {
  345.                 a[i] = (resultSet.getObject(i+1) == null)? "":resultSet.getObject(i+1).toString();
  346.             }
  347.             //TODO: set textfields
  348.         } catch (SQLException e) {
  349.             e.printStackTrace();
  350.         }
  351.     }
  352.    
  353.     public void shutDownConnection () {
  354.         try {
  355.             resultSet.close();
  356.             connection.close();
  357.         } catch (Exception e) {
  358.             e.printStackTrace();
  359.         }
  360.     }
  361. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement