Advertisement
Guest User

Untitled

a guest
Dec 17th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.46 KB | None | 0 0
  1. package com.company;
  2.  
  3. import javax.swing.*;
  4. import java.awt.*;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.awt.event.WindowAdapter;
  8. import java.awt.event.WindowEvent;
  9. import java.sql.*;
  10. import java.util.Vector;
  11.  
  12. public class Main extends JFrame {
  13.     private Connection DBConnect;
  14.     private Statement lines;
  15.     private ResultSet setOutput;
  16.     private JTable DBTable;
  17.     private JComboBox inputfromCombo;
  18.     private TextField inputfromTextField;
  19.     private JButton addSalariedEmployee;
  20.     private JButton addCommissionEmployee;
  21.     private JButton addBasePlusCommissionEmployee;
  22.     private JButton addHourlyEmployee;
  23.  
  24.     public Main(){
  25.         super("Employee Database");
  26.         String url = "jdbc:sqlite:/Users/Hopefullight/Desktop/test5/employee.db";
  27.         try{
  28.             DBConnect = DriverManager.getConnection(url);
  29.         } catch(SQLException e){
  30.             System.err.println("Connection Error");
  31.             e.printStackTrace();
  32.             System.exit(1);
  33.         }
  34.         //24.4
  35.         addSalariedEmployee = new JButton("Add Salaried Employee");
  36.         addCommissionEmployee = new JButton("Add Commission Employee");
  37.         addBasePlusCommissionEmployee = new JButton("Add Base Plus Commission Employee");
  38.         addHourlyEmployee = new JButton("Add Hourly Employee");
  39.         JPanel centerPanel = new JPanel();
  40.         centerPanel.setLayout(new FlowLayout());
  41.         centerPanel.add(addSalariedEmployee);
  42.         addSalariedEmployee.addActionListener(new ButtonHandler());
  43.         centerPanel.add(addCommissionEmployee);
  44.         addCommissionEmployee.addActionListener(new ButtonHandler());
  45.         centerPanel.add(addBasePlusCommissionEmployee);
  46.         addBasePlusCommissionEmployee.addActionListener(new ButtonHandler());
  47.         centerPanel.add(addHourlyEmployee);
  48.         addHourlyEmployee.addActionListener(new ButtonHandler());
  49.         //24.5
  50.         String selectQuery[] = {"Select all employees",
  51.                 "Select all employees working in Department SALES",
  52.                 "Select hourly employees working over 30 hours.",
  53.                 "Select all commission employees in descending order of the commission rate.",
  54.                 "Select all base plus  commission employees",
  55.                 "Select all commission employees",
  56.                 "Select all hourly employees",
  57.                 "Select all salaried employees",
  58.         };
  59.         inputfromCombo = new JComboBox(selectQuery);
  60.         JButton inputfromButton = new JButton("Submit query");
  61.         inputfromButton.addActionListener(e -> showDBTable());
  62.         JPanel panel = new JPanel();
  63.         inputfromTextField = new TextField(100);
  64.         inputfromTextField.addActionListener(e -> {
  65.                     try{
  66.                         String newQuery = inputfromTextField.getText();
  67.                         lines = DBConnect.createStatement();
  68.                         if(newQuery.substring(0,6).equals("SELECT")){
  69.                             setOutput = lines.executeQuery(newQuery);
  70.                             displaySet(setOutput);
  71.                         }
  72.                         else if(newQuery.substring(0,6).equals("INSERT")){
  73.                             setOutput = lines.executeQuery(newQuery);
  74.                         }
  75.                         else lines.executeUpdate(newQuery);
  76.                     }
  77.                     catch(SQLException ex){
  78.                         System.err.println("Error");
  79.                         ex.printStackTrace();
  80.                     }
  81.                 }
  82.         );
  83.         panel.setLayout(new BorderLayout());
  84.         panel.add(inputfromTextField, BorderLayout.NORTH);
  85.         panel.add(centerPanel, BorderLayout.CENTER);
  86.         panel.add(inputfromCombo, BorderLayout.SOUTH);
  87.         panel.add(inputfromButton, BorderLayout.EAST);
  88.         DBTable = new JTable(10, 10);
  89.         Container getCont = getContentPane();
  90.         getCont.setLayout(new BorderLayout());
  91.         getCont.add(panel, BorderLayout.NORTH);
  92.         getCont.add(DBTable, BorderLayout.SOUTH);
  93.         showDBTable();
  94.         setSize (1000, 500);
  95.         setVisible(true);
  96.     }
  97.  
  98.     private void showDBTable(){
  99.         try{
  100.             String queryStatement = null;
  101.             int comboQuery = inputfromCombo.getSelectedIndex();
  102.             switch(comboQuery){
  103.                 case 0: queryStatement = "SELECT * FROM employees"; break;
  104.                 case 1: queryStatement = "SELECT * FROM employees WHERE " + "departmentName = 'SALES'"; break;
  105.                 case 2: queryStatement = "SELECT * FROM hourlyEmployees WHERE hours >= 30"; break;
  106.                 case 3: queryStatement = "SELECT * FROM commissionEmployees ORDER BY " + "commissionRate DESC"; break;
  107.                 case 4: queryStatement = "SELECT * FROM basePlusCommissionEmployees"; break;
  108.                 case 5: queryStatement = "SELECT * FROM commissionEmployees"; break;
  109.                 case 6: queryStatement = "SELECT * FROM hourlyEmployees"; break;
  110.                 case 7: queryStatement = "SELECT * FROM salariedEmployees"; break;
  111.             }
  112.             lines = DBConnect.createStatement();
  113.             if(queryStatement.substring(0,6).equals("SELECT")){
  114.                 setOutput = lines.executeQuery(queryStatement);
  115.                 displaySet(setOutput);
  116.             }
  117.             else if(queryStatement.substring(0,6).equals("INSERT")){
  118.                 setOutput = lines.executeQuery(queryStatement);
  119.             }
  120.             else lines.executeUpdate(queryStatement);
  121.         }
  122.         catch(SQLException ex){
  123.             System.err.println("Error");
  124.             ex.printStackTrace();
  125.         }
  126.     }
  127.     private void displaySet(ResultSet r)throws SQLException {
  128.         boolean numRecords = r.next();
  129.         if (!numRecords) {
  130.             JOptionPane.showMessageDialog(this, "ResultSet contained no records");
  131.             setTitle("No records to display");
  132.             return;
  133.         }
  134.         Vector numColumns = new Vector();
  135.         Vector numRows = new Vector();
  136.         try {
  137.             int i;
  138.             ResultSetMetaData rsmd = r.getMetaData();
  139.             for (i = 1; i <= rsmd.getColumnCount(); i++) numColumns.addElement(rsmd.getColumnName(i));
  140.             do {
  141.                 numRows.addElement(nextRows(r, rsmd));
  142.             }
  143.             while (r.next());
  144.             DBTable = new JTable(numRows, numColumns);
  145.             JScrollPane js = new JScrollPane(DBTable);
  146.             Container cont = getContentPane();
  147.             cont.remove(1);
  148.             cont.add(js, BorderLayout.CENTER);
  149.             cont.validate();
  150.         } catch (SQLException ex) {
  151.             System.err.println("Error");
  152.             ex.printStackTrace();
  153.         }
  154.     }
  155.     private Vector nextRows(ResultSet r, ResultSetMetaData rsmd) throws SQLException {
  156.         int i;
  157.         Vector currentRow = new Vector();
  158.         for (i = 1; i <= rsmd.getColumnCount(); ++i)
  159.             switch (rsmd.getColumnType(i)) {
  160.                 case Types.VARCHAR:
  161.                 case Types.LONGVARCHAR:
  162.                     currentRow.addElement(r.getString(i)); break;
  163.                 case Types.INTEGER:
  164.                     currentRow.addElement(r.getLong(i)); break;
  165.                 case Types.REAL:
  166.                     currentRow.addElement((float) r.getDouble(i)); break;
  167.                 default:
  168.                     currentRow.addElement(r.getString(i)); break;
  169.             }
  170.         return currentRow;
  171.     }
  172.     // inner class ButtonHandler handle button event
  173.     private class ButtonHandler implements ActionListener {
  174.         public void actionPerformed( ActionEvent event ) {
  175.             String socialSecurityNumber = JOptionPane.showInputDialog("Employee Social Security Number");
  176.             String insertQuery = "";
  177.             if (event.getSource() == addSalariedEmployee) {
  178.                 double weeklySalary = Double.parseDouble(JOptionPane.showInputDialog("Weekly Salary:"));
  179.                 insertQuery = "INSERT INTO salariedEmployees VALUES ( '" + socialSecurityNumber + "', '" + weeklySalary + "', '0' )";
  180.             } else if (event.getSource() == addHourlyEmployee) {
  181.                 int hours = Integer.parseInt(JOptionPane.showInputDialog("Hours:"));
  182.                 double wage = Double.parseDouble(JOptionPane.showInputDialog("Wage:"));
  183.                 insertQuery = "INSERT INTO hourlyEmployees VALUES ( '" + socialSecurityNumber + "', '" + hours + "', '" + wage + "', '0' )";
  184.             } else if (event.getSource() == addCommissionEmployee) {
  185.                 int grossSales = Integer.parseInt(JOptionPane.showInputDialog("Gross Sales:"));
  186.                 double commissionRate = Double.parseDouble(JOptionPane.showInputDialog("Commission Rate:"));
  187.                 insertQuery = "INSERT INTO commissionEmployees VALUES ( '" + socialSecurityNumber + "', '" + grossSales + "', '" + commissionRate + "', '0' )";
  188.             } else if (event.getSource() == addBasePlusCommissionEmployee) {
  189.                 int grossSales = Integer.parseInt(JOptionPane.showInputDialog("Gross Sales:"));
  190.                 double commissionRate = Double.parseDouble(JOptionPane.showInputDialog("Commission Rate:"));
  191.                 double baseSalary = Double.parseDouble(JOptionPane.showInputDialog("Base Salary:"));
  192.                 insertQuery = "INSERT INTO basePlusCommissionEmployees " + "VALUES ( '" + socialSecurityNumber + "','"
  193.                         + grossSales + " ', '" + commissionRate + "', '" + baseSalary + "', '0')";
  194.             } else {
  195.                 System.out.println("Failed to add");
  196.             }
  197.             // execute insert query
  198.             try
  199.             {
  200.                 lines = DBConnect.createStatement();
  201.                 lines.executeUpdate(insertQuery);
  202.             }
  203.             catch ( SQLException exception)
  204.             {
  205.                 System.err.println("Error");
  206.                 exception.printStackTrace();
  207.             }
  208.         }
  209.  
  210.     }
  211.     public void disconnection(){
  212.         try{
  213.             DBConnect.close();
  214.         }
  215.         catch (SQLException ex){
  216.             System.err.println("Disconnection Error");
  217.             ex.printStackTrace();
  218.         }
  219.     }
  220.     public static void main( String[] args) {
  221.         final Main application = new Main();
  222.         application.addWindowListener( new WindowAdapter() {
  223.             public void windowClosing( WindowEvent e) {
  224.                 application.disconnection();
  225.                 System.exit( 0 );
  226.             }
  227.         }
  228.         );
  229.     }
  230. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement