Guest User

Untitled

a guest
Feb 18th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.87 KB | None | 0 0
  1. package pl.kti.pk2.dbdemo.gui;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Dimension;
  5. import java.awt.Font;
  6. import java.awt.GridLayout;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.sql.ResultSet;
  10. import java.sql.Statement;
  11.  
  12. import javax.swing.BorderFactory;
  13. import javax.swing.JButton;
  14. import javax.swing.JComboBox;
  15. import javax.swing.JFrame;
  16. import javax.swing.JLabel;
  17. import javax.swing.JOptionPane;
  18. import javax.swing.JPanel;
  19. import javax.swing.JScrollPane;
  20. import javax.swing.JTable;
  21. import javax.swing.JTextArea;
  22. import javax.swing.JTextField;
  23.  
  24. import pl.kti.pk2.dbdemo.data.CachingResultSetTableModel;
  25. import pl.kti.pk2.dbdemo.data.DBManager;
  26.  
  27. public class DBDemoFrame extends JFrame {
  28.    
  29.     private static final long serialVersionUID = -6846315193410091203L;
  30.  
  31.     public static void main(String[] args) {
  32.         JFrame app_frame = new DBDemoFrame();
  33.         app_frame.setVisible(true);
  34.     }
  35.    
  36.     private JTextArea _editor;
  37.     private JTable _table;
  38.     private CachingResultSetTableModel _tableModel;
  39.     private JFrame okienko;
  40.     private JTextField _id;
  41.     private JTextField _name;
  42.     private JTextField _desc;
  43.     private JTextField _lastname;
  44.     private JComboBox _idd_fk;
  45.     private String[] deps;
  46.    
  47.     public DBDemoFrame() {
  48.         super("Employees and departments");
  49.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  50.         setSize(550, 650);
  51.         setLocationRelativeTo(null);
  52.        
  53.         initGUI();
  54.     }
  55.  
  56.     private void initGUI() {
  57.        
  58.         getContentPane().setLayout(new BorderLayout());
  59.  
  60.         JButton _showAll        = new JButton("Show All");
  61.         JButton _showLatest     = new JButton("Show Latest");
  62.         JButton _showDepartments = new JButton("Show departments");
  63.         JButton _showEmpl       = new JButton("Employees from department");
  64.         JButton _addDep         = new JButton("Add new department");
  65.         JButton _addEmpl        = new JButton("Add new employee");
  66.        
  67.         JPanel actionPanel = new JPanel();
  68.         actionPanel.setLayout(new GridLayout(3, 0));
  69.         getContentPane().add(actionPanel,BorderLayout.NORTH);
  70.        
  71.         actionPanel.add(_showAll);     
  72.         actionPanel.add(_showLatest);      
  73.         actionPanel.add(_showDepartments );
  74.         actionPanel.add(_showEmpl );
  75.         actionPanel.add(_addDep );
  76.         actionPanel.add(_addEmpl );
  77.        
  78.        
  79.         _tableModel = new CachingResultSetTableModel(null);
  80.         _table = new JTable(_tableModel);
  81.         JScrollPane tableScroll = new JScrollPane(_table);
  82.         add(tableScroll, BorderLayout.CENTER);
  83.  
  84.         _showAll.addActionListener(new ActionListener() {
  85.             public void actionPerformed(ActionEvent arg0) {
  86.                 sendQuery("SELECT * FROM pracownicy");
  87.             }
  88.         });
  89.        
  90.         _showLatest.addActionListener(new ActionListener() {
  91.             public void actionPerformed(ActionEvent arg0) {
  92.                 sendQuery("SELECT * FROM pracownicy ORDER BY id DESC LIMIT 1");
  93.             }
  94.         });
  95.        
  96.         _showDepartments.addActionListener(new ActionListener() {
  97.             public void actionPerformed(ActionEvent arg0) {
  98.                 sendQuery("SELECT * FROM dzialy");
  99.             }
  100.         });
  101.        
  102.         _showEmpl.addActionListener(new ActionListener() {
  103.             public void actionPerformed(ActionEvent arg0) {
  104.                 String id = String.valueOf( _tableModel.getValueAt(_table.getSelectedRow() , 0) );
  105.                 sendQuery("SELECT * FROM pracownicy LEFT JOIN dzialy ON(idd_fk=idd) WHERE idd_fk = "+id+";");
  106.             }
  107.         });
  108.        
  109.         _addDep.addActionListener(new ActionListener() {
  110.             public void actionPerformed(ActionEvent arg0) {
  111.                 //String name = JOptionPane.showInputDialog(getContentPane(), "Podaj nazwę działu:");
  112.                 JButton _ok     = new JButton("OK");
  113.                 JButton _cancel = new JButton("Cancel");
  114.                 _id = new JTextField();
  115.                 _name = new JTextField();
  116.                 _desc = new JTextField();
  117.                
  118.                 okienko = new JFrame();
  119.                 okienko.add(new JLabel("ID:") );
  120.                 okienko.add(_id);
  121.                 okienko.add(new JLabel("Name:"));
  122.                 okienko.add(_name);
  123.                 okienko.add(new JLabel("Description:"));
  124.                 okienko.add(_desc);
  125.                 okienko.add(_cancel);
  126.                 okienko.add(_ok);
  127.                
  128.                 okienko.setSize(500, 200);
  129.                 okienko.setLocationRelativeTo(null);
  130.                 GridLayout layout = new GridLayout(0, 2,6,6);
  131.  
  132.                 okienko.setLayout(layout);
  133.                 okienko.setTitle("Add department");
  134.                 okienko.setVisible(true);
  135.                
  136.                 _ok.addActionListener(new ActionListener() {
  137.                     public void actionPerformed(ActionEvent arg0) {
  138.                         sendQuery("INSERT INTO dzialy VALUES('"+_id.getText()+"','"+_name.getText()+"','"+_desc.getText()+"');");
  139.                         sendQuery("SELECT * FROM dzialy");
  140.                         okienko.setVisible(false);
  141.                     }
  142.                 });
  143.                
  144.                 _cancel.addActionListener(new ActionListener() {
  145.                     public void actionPerformed(ActionEvent arg0) {                        
  146.                         okienko.setVisible(false);
  147.                     }
  148.                 });
  149.             }
  150.         });
  151.        
  152.         _addEmpl.addActionListener(new ActionListener() {
  153.             public void actionPerformed(ActionEvent arg0) {
  154.                 JButton _ok     = new JButton("OK");
  155.                 JButton _cancel = new JButton("Cancel");
  156.                 sendQuery("SELECT * FROM dzialy ORDER BY idd ASC");
  157.                 _id = new JTextField();
  158.                 _name = new JTextField();
  159.                 _lastname = new JTextField();
  160.                 _desc = new JTextField();
  161.                 _idd_fk = new JComboBox();
  162.                 deps = new String[_tableModel.getRowCount()];
  163.                
  164.                 for( int x= 0; x<_tableModel.getRowCount(); x++)
  165.                 {
  166.                     _idd_fk.insertItemAt(_tableModel.getValueAt(x, 1), x);
  167.                     deps[x] = String.valueOf(_tableModel.getValueAt(x, 0));
  168.                 }
  169.                
  170.                 okienko = new JFrame();
  171.                 okienko.add(new JLabel("ID:") );
  172.                 okienko.add(_id);
  173.                 okienko.add(new JLabel("Name:"));
  174.                 okienko.add(_name);
  175.                 okienko.add(new JLabel("Last Name:"));
  176.                 okienko.add(_lastname);
  177.                 okienko.add(new JLabel("Description:"));
  178.                 okienko.add(_desc);
  179.                 okienko.add(new JLabel("Department:"));
  180.                 okienko.add(_idd_fk);
  181.                 okienko.add(_cancel);
  182.                 okienko.add(_ok);
  183.                
  184.                 okienko.setSize(500, 200);
  185.                 okienko.setLocationRelativeTo(null);
  186.                 GridLayout layout = new GridLayout(0, 2,6,6);
  187.  
  188.                 okienko.setLayout(layout);
  189.                 okienko.setTitle("Add employee");
  190.                 okienko.setVisible(true);
  191.                
  192.                 _ok.addActionListener(new ActionListener() {
  193.                     public void actionPerformed(ActionEvent arg0) {
  194.                         sendQuery("INSERT INTO pracownicy VALUES('"+_id.getText()+"','"+_name.getText()+"','"+_lastname.getText()+"','"+_desc.getText()+"','"+deps[_idd_fk.getSelectedIndex()]+"');");
  195.                         sendQuery("SELECT * FROM pracownicy");
  196.                         okienko.setVisible(false);
  197.                     }
  198.                 });
  199.                
  200.                 _cancel.addActionListener(new ActionListener() {
  201.                     public void actionPerformed(ActionEvent arg0) {                        
  202.                         okienko.setVisible(false);
  203.                     }
  204.                 });
  205.             }
  206.         });
  207.     }
  208.    
  209.     protected void sendQuery() {
  210.         try {
  211.             // read query from the editor
  212.             String query = _editor.getText();
  213.            
  214.             if (query.length() > 6 &&
  215.                 (
  216.                     query.substring(0, 6).equalsIgnoreCase("insert") ||
  217.                     query.substring(0, 6).equalsIgnoreCase("update") ||
  218.                     query.substring(0, 6).equalsIgnoreCase("delete")
  219.                 )
  220.             ) {
  221.                 Statement stmt = DBManager.getConnection().createStatement();
  222.                 stmt.executeUpdate(query);
  223.                 _tableModel.setResultSet(null);
  224.                 stmt.close();
  225.             } else if ((query.length() > 6) && (query.substring(0,6).equalsIgnoreCase("select"))){
  226.                 // create SQL statement and execute query read from the _editor
  227.                 Statement stmt = DBManager.getConnection().createStatement();
  228.                 ResultSet queryResult = stmt.executeQuery(query);
  229.                 // pass the resultSet to the table model (use setResultSet method from the model)
  230.                 _tableModel.setResultSet(queryResult);
  231.                 // close the resultSet and statement
  232.                 queryResult.close();
  233.                 stmt.close();
  234.             }
  235.             else
  236.             {
  237.                 Statement stmt = DBManager.getConnection().createStatement();
  238.                 stmt.execute(query);
  239.                 stmt.close();
  240.             }
  241.         } catch (Exception e) {
  242.             _editor.setText(e.getMessage());
  243.         }
  244.     }
  245.     protected void sendQuery(String query) {
  246.         try {
  247.        
  248.             if (query.length() > 6 &&
  249.                 (
  250.                     query.substring(0, 6).equalsIgnoreCase("insert") ||
  251.                     query.substring(0, 6).equalsIgnoreCase("update") ||
  252.                     query.substring(0, 6).equalsIgnoreCase("delete")
  253.                 )
  254.             ) {
  255.                 Statement stmt = DBManager.getConnection().createStatement();
  256.                 stmt.executeUpdate(query);
  257.                 _tableModel.setResultSet(null);
  258.                 stmt.close();
  259.             } else if ((query.length() > 6) && (query.substring(0,6).equalsIgnoreCase("select"))){
  260.                 // create SQL statement and execute query read from the _editor
  261.                 Statement stmt = DBManager.getConnection().createStatement();
  262.                 ResultSet queryResult = stmt.executeQuery(query);
  263.                 // pass the resultSet to the table model (use setResultSet method from the model)
  264.                 _tableModel.setResultSet(queryResult);
  265.                 // close the resultSet and statement
  266.                 queryResult.close();
  267.                 stmt.close();
  268.             }
  269.             else
  270.             {
  271.                 Statement stmt = DBManager.getConnection().createStatement();
  272.                 stmt.execute(query);
  273.                 stmt.close();
  274.             }
  275.         } catch (Exception e) {
  276.             System.out.println(e.getMessage());
  277.         }
  278.     }
  279. }
Add Comment
Please, Sign In to add comment