Advertisement
nguyenvanquan7826

connect database - class MyFame

May 9th, 2014
987
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.06 KB | None | 0 0
  1. package nguyenvanquan7826.database;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.GridLayout;
  5. import java.awt.JobAttributes;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.sql.ResultSet;
  9. import java.sql.ResultSetMetaData;
  10. import java.sql.SQLException;
  11.  
  12. import javax.swing.JButton;
  13. import javax.swing.JFrame;
  14. import javax.swing.JLabel;
  15. import javax.swing.JOptionPane;
  16. import javax.swing.JPanel;
  17. import javax.swing.JScrollPane;
  18. import javax.swing.JTable;
  19. import javax.swing.JTextField;
  20. import javax.swing.border.EmptyBorder;
  21. import javax.swing.event.ListSelectionEvent;
  22. import javax.swing.event.ListSelectionListener;
  23. import javax.swing.table.DefaultTableModel;
  24.  
  25. import jdk.nashorn.internal.scripts.JO;
  26.  
  27. public class MyFrame extends JFrame implements ActionListener {
  28.  
  29.     private boolean isUpdate = false;
  30.  
  31.     private JTable table;
  32.     private JTextField tfId, tfName, tfPoint;
  33.     private JButton btnOk;
  34.     private JButton btnCancel;
  35.     MyConnect myConnect = new MyConnect();
  36.  
  37.     public MyFrame() {
  38.         // add main panel to JFrame
  39.         add(createMainPanel());
  40.         setDisplayInput(false, false);
  41.  
  42.         // connect database
  43.         myConnect.connect();
  44.  
  45.         // set dipslay
  46.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  47.         pack();
  48.         setLocationRelativeTo(null);
  49.         setVisible(true);
  50.     }
  51.  
  52.     // create main panel
  53.     private JPanel createMainPanel() {
  54.         JPanel panel = new JPanel(new BorderLayout());
  55.         panel.add(createTitlePanel(), BorderLayout.PAGE_START);
  56.         panel.add(createTablePanel(), BorderLayout.CENTER);
  57.         panel.add(createBottomPanel(), BorderLayout.PAGE_END);
  58.         return panel;
  59.     }
  60.  
  61.     // create title panel
  62.     private JPanel createTitlePanel() {
  63.         JPanel panel = new JPanel();
  64.         JLabel lbTitle = new JLabel("Connect Database");
  65.         panel.add(lbTitle);
  66.         return panel;
  67.     }
  68.  
  69.     // create table panel
  70.     private JPanel createTablePanel() {
  71.         JPanel panel = new JPanel();
  72.         panel.add(new JScrollPane(table = createTabel()));
  73.         return panel;
  74.     }
  75.  
  76.     // create button panel
  77.     private JPanel createBottomPanel() {
  78.         JPanel panel = new JPanel(new BorderLayout(10, 10));
  79.         panel.setBorder(new EmptyBorder(5, 70, 10, 70));
  80.         panel.add(createInputPanel(), BorderLayout.CENTER);
  81.         panel.add(createButtonPanel(), BorderLayout.PAGE_END);
  82.         return panel;
  83.     }
  84.  
  85.     private JPanel createInputPanel() {
  86.         JPanel panel = new JPanel(new BorderLayout(10, 10));
  87.  
  88.         // panel left
  89.         JPanel panelLeft = new JPanel(new GridLayout(3, 1, 5, 5));
  90.         panelLeft.add(new JLabel("Id"));
  91.         panelLeft.add(new JLabel("Name"));
  92.         panelLeft.add(new JLabel("Point"));
  93.  
  94.         // panel right
  95.         JPanel panelRight = new JPanel(new GridLayout(3, 1, 5, 5));
  96.         panelRight.add(tfId = new JTextField());
  97.         panelRight.add(tfName = new JTextField());
  98.         panelRight.add(tfPoint = new JTextField());
  99.  
  100.         // panel ok
  101.         JPanel panelOk = new JPanel(new GridLayout(1, 2, 5, 5));
  102.         panelOk.setBorder(new EmptyBorder(0, 50, 0, 50));
  103.         panelOk.add(btnOk = createButton("Ok"));
  104.         panelOk.add(btnCancel = createButton("Cancel"));
  105.  
  106.         panel.add(panelLeft, BorderLayout.WEST);
  107.         panel.add(panelRight, BorderLayout.CENTER);
  108.         panel.add(panelOk, BorderLayout.PAGE_END);
  109.         return panel;
  110.     }
  111.  
  112.     private JPanel createButtonPanel() {
  113.         JPanel panel = new JPanel(new GridLayout(1, 3, 5, 5));
  114.         panel.add(createButton("Add"));
  115.         panel.add(createButton("Update"));
  116.         panel.add(createButton("Delete"));
  117.         return panel;
  118.     }
  119.  
  120.     // create a table
  121.     private JTable createTabel() {
  122.         JTable table = new JTable();
  123.         return table;
  124.     }
  125.  
  126.     // create a button
  127.     private JButton createButton(String text) {
  128.         JButton btn = new JButton(text);
  129.         btn.addActionListener(this);
  130.         return btn;
  131.     }
  132.  
  133.     private boolean setDisplayInput(boolean display, boolean update) {
  134.         if (update && table.getSelectedRow() < 0) {
  135.             return false;
  136.         } else if (update) {
  137.             int row = table.getSelectedRow();
  138.             tfId.setText((String) table.getValueAt(row, 0));
  139.             tfName.setText((String) table.getValueAt(row, 1));
  140.             tfPoint.setText((String) table.getValueAt(row, 2));
  141.         }
  142.         tfId.setEnabled(display);
  143.         tfName.setEnabled(display);
  144.         tfPoint.setEnabled(display);
  145.         btnOk.setEnabled(display);
  146.         btnCancel.setEnabled(display);
  147.  
  148.         return true;
  149.  
  150.     }
  151.  
  152.     private void loadData() {
  153.         // create table model
  154.         DefaultTableModel model = new DefaultTableModel();
  155.  
  156.         // get data from database
  157.         ResultSet rs = myConnect.getData();
  158.         try {
  159.             // load column name
  160.             ResultSetMetaData rsMD = rs.getMetaData();
  161.             int colNumber = rsMD.getColumnCount();
  162.             String[] arr = new String[colNumber];
  163.             for (int i = 0; i < colNumber; i++) {
  164.                 arr[i] = rsMD.getColumnName(i + 1);
  165.             }
  166.             model.setColumnIdentifiers(arr);
  167.  
  168.             // load data from database to table
  169.             while (rs.next()) {
  170.                 for (int i = 0; i < colNumber; i++) {
  171.                     arr[i] = rs.getString(i + 1);
  172.                 }
  173.                 model.addRow(arr);
  174.             }
  175.  
  176.         } catch (SQLException e) {
  177.         }
  178.         table.setModel(model);
  179.     }
  180.  
  181.     private void delete() {
  182.         int row = table.getSelectedRow();
  183.         if (row < 0) {
  184.             JOptionPane.showMessageDialog(null,
  185.                     "You must select a row in table", "Error delete",
  186.                     JOptionPane.ERROR_MESSAGE);
  187.             return;
  188.         }
  189.         int select = JOptionPane.showOptionDialog(null, "Are you want delet?",
  190.                 "Delete", 0, JOptionPane.YES_NO_OPTION, null, null, 1);
  191.         if (select == 0) {
  192.             myConnect.deleteId((String) table.getValueAt(row, 0));
  193.             loadData();
  194.         }
  195.     }
  196.  
  197.     private Student getStudent() {
  198.         String id = tfId.getText().trim().toUpperCase();
  199.         String name = tfName.getText().trim();
  200.  
  201.         if (id.equals("") || name.equals("")) {
  202.             return null;
  203.         }
  204.  
  205.         double point;
  206.         try {
  207.             point = Double.parseDouble(tfPoint.getText().trim());
  208.         } catch (Exception e) {
  209.             return null;
  210.         }
  211.  
  212.         Student st = new Student(id, name, point);
  213.         return st;
  214.     }
  215.  
  216.     private void update() {
  217.         if (setDisplayInput(true, true)) {
  218.             isUpdate = true;
  219.         } else {
  220.             JOptionPane.showMessageDialog(null, "Error update", "Error update",
  221.                     JOptionPane.ERROR_MESSAGE);
  222.         }
  223.     }
  224.  
  225.     private void add() {
  226.         setDisplayInput(true, false);
  227.     }
  228.  
  229.     private void addOrUpdate() {
  230.         Student st = getStudent();
  231.         if (st != null) {
  232.             if (isUpdate) {
  233.                 myConnect.updateId(st.getId(), st);
  234.                 loadData();
  235.                 isUpdate = false;
  236.             } else {
  237.                 myConnect.insert(st);
  238.                 loadData();
  239.             }
  240.             clear();
  241.             setDisplayInput(false, false);
  242.         } else {
  243.             JOptionPane.showMessageDialog(null, "Infomation is error",
  244.                     "Error info", JOptionPane.ERROR_MESSAGE);
  245.         }
  246.  
  247.     }
  248.  
  249.     private void clear() {
  250.         tfId.setText("");
  251.         tfName.setText("");
  252.         tfPoint.setText("");
  253.     }
  254.  
  255.     private void cancel() {
  256.         clear();
  257.         setDisplayInput(false, false);
  258.     }
  259.  
  260.     @Override
  261.     public void actionPerformed(ActionEvent e) {
  262.         if (e.getActionCommand() == "Delete") {
  263.             delete();
  264.             return;
  265.         }
  266.         if (e.getActionCommand() == "Update") {
  267.             update();
  268.             return;
  269.         }
  270.         if (e.getActionCommand() == "Add") {
  271.             add();
  272.             return;
  273.         }
  274.         if (e.getSource() == btnOk) {
  275.             addOrUpdate();
  276.         }
  277.  
  278.         if (e.getSource() == btnCancel) {
  279.             cancel();
  280.         }
  281.  
  282.     }
  283.  
  284.     public static void main(String[] args) {
  285.         MyFrame myFrame = new MyFrame();
  286.         myFrame.loadData();
  287.     }
  288.  
  289. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement