Advertisement
Guest User

Untitled

a guest
Aug 4th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.14 KB | None | 0 0
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package examenpractice;
  6.  
  7. import java.awt.BorderLayout;
  8. import java.awt.Dimension;
  9. import java.sql.Connection;
  10. import java.sql.DriverManager;
  11. import java.sql.PreparedStatement;
  12. import java.sql.ResultSet;
  13. import java.sql.ResultSetMetaData;
  14. import java.sql.SQLException;
  15. import java.util.ArrayList;
  16. import java.util.LinkedList;
  17. import java.util.Properties;
  18. import javax.swing.JFrame;
  19. import javax.swing.JScrollPane;
  20. import javax.swing.JTable;
  21. import javax.swing.SwingUtilities;
  22. import javax.swing.event.TableModelEvent;
  23. import javax.swing.event.TableModelListener;
  24. import javax.swing.table.AbstractTableModel;
  25. import oracle.jdbc.pool.OracleDataSource;
  26.  
  27. /**
  28.  *
  29.  * @author jeffrey
  30.  */
  31. public class ResultsetStuff
  32. {
  33.     private static final String DRIVER_STRING = "oracle.jdbc.driver.OracleDriver";
  34.     private static final String CONNECT_STRING = "jdbc:oracle:thin:@//192.168.0.107:1522/orcl";
  35.  
  36.     public ResultsetStuff()
  37.     {
  38.         final ArrayList<Person> persons = new ArrayList<Person>(5);
  39.         persons.add(new Person("John", "Doe"));
  40.         persons.add(new Person(DRIVER_STRING, DRIVER_STRING));
  41.         persons.add(new Person("Herp", "Derp"));
  42.         persons.add(new Person("Rofl", "Dofl"));
  43.         persons.add(new Person("Derpa", "Hurrrr"));
  44.  
  45.         SwingUtilities.invokeLater(new Runnable()
  46.         {
  47.             @Override
  48.             public void run()
  49.             {
  50.                 TableFrame frame = new TableFrame(persons);
  51.                 frame.setVisible(true);
  52.             }
  53.         });
  54.  
  55.         /*ResultSet rs = null;
  56.         Connection conn = null;
  57.         PreparedStatement pstmt = null;
  58.        
  59.         try
  60.         {
  61.         conn = godTierConnection();
  62.        
  63.         pstmt = conn.prepareStatement("SELECT * FROM vliegtuigen");
  64.         rs = pstmt.executeQuery();
  65.        
  66.         ResultSetMetaData data = rs.getMetaData();
  67.         while (rs.next())
  68.         {
  69.         int numCols = data.getColumnCount() + 1;
  70.         while (--numCols >= 1)
  71.         {
  72.         System.out.print(rs.getString(numCols));
  73.         }
  74.        
  75.         System.out.println();
  76.         }
  77.         }
  78.         catch (SQLException e)
  79.         {
  80.         System.err.println(e.getMessage());
  81.         }
  82.         finally
  83.         {
  84.         try
  85.         {
  86.         rs.close();
  87.         pstmt.close();
  88.         conn.close();
  89.         }
  90.         catch (SQLException ex)
  91.         {
  92.         System.err.println(ex.getMessage());
  93.         }
  94.         }*/
  95.     }
  96.  
  97.     private Connection shitTierConnection()
  98.     {
  99.         Connection conn = null;
  100.         try
  101.         {
  102.             Class.forName(DRIVER_STRING);
  103.             conn = DriverManager.getConnection(CONNECT_STRING, "student", "xios");
  104.         }
  105.         catch (ClassNotFoundException e)
  106.         {
  107.             System.err.println(e.getMessage());
  108.         }
  109.         catch (SQLException ex)
  110.         {
  111.             System.err.println(ex.getMessage());
  112.         }
  113.  
  114.         return conn;
  115.     }
  116.  
  117.     private Connection godTierConnection()
  118.     {
  119.         Connection conn = null;
  120.         try
  121.         {
  122.             OracleDataSource dSource = new OracleDataSource();
  123.             Properties p = new Properties();
  124.             p.setProperty("user", "student");
  125.             p.setProperty("password", "xios");
  126.  
  127.             dSource.setConnectionProperties(p);
  128.             dSource.setURL(CONNECT_STRING);
  129.  
  130.             return dSource.getConnection();
  131.         }
  132.         catch (SQLException e)
  133.         {
  134.             System.err.println(e.getMessage());
  135.         }
  136.  
  137.         return conn;
  138.     }
  139.  
  140.     private class Person
  141.     {
  142.         private String firstName;
  143.         private String lastName;
  144.  
  145.         public Person(String firstName, String lastName)
  146.         {
  147.             this.firstName = firstName;
  148.             this.lastName = lastName;
  149.         }
  150.  
  151.         public String getFirstName()
  152.         {
  153.             return firstName;
  154.         }
  155.  
  156.         public String getLastName()
  157.         {
  158.             return lastName;
  159.         }
  160.     }
  161.  
  162.     private class ValueTableModel extends AbstractTableModel
  163.     {
  164.         private Object[][] values;
  165.         private String[] headers;
  166.  
  167.         public ValueTableModel(Object[][] values, final String[] headers)
  168.         {
  169.             this.values = values;
  170.             this.headers = headers;
  171.         }
  172.  
  173.         public String[] getHeaders()
  174.         {
  175.             return headers;
  176.         }
  177.  
  178.         @Override
  179.         public int getColumnCount()
  180.         {
  181.             return headers.length;
  182.         }
  183.  
  184.         @Override
  185.         public int getRowCount()
  186.         {
  187.             return values.length;
  188.         }
  189.  
  190.         @Override
  191.         public String getColumnName(int i)
  192.         {
  193.             return headers[i];
  194.         }
  195.  
  196.         @Override
  197.         public Class<?> getColumnClass(int i)
  198.         {
  199.             return getValueAt(0, i).getClass();
  200.         }
  201.  
  202.         @Override
  203.         public boolean isCellEditable(int i, int i1)
  204.         {
  205.             return true;
  206.         }
  207.  
  208.         @Override
  209.         public void setValueAt(Object o, int i, int i1)
  210.         {
  211.             values[i][i1] = o;
  212.             fireTableCellUpdated(i, i1);
  213.         }
  214.  
  215.         @Override
  216.         public Object getValueAt(int i, int i1)
  217.         {
  218.             return values[i][i1];
  219.         }
  220.     }
  221.  
  222.     private class TableFrame extends JFrame
  223.     {
  224.         private JTable table;
  225.         private ArrayList<Person> persons;
  226.  
  227.         public TableFrame(final ArrayList<Person> persons)
  228.         {
  229.             this.persons = persons;
  230.  
  231.             this.setPreferredSize(new Dimension(500, 500));
  232.             this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  233.  
  234.             this.createGUI();
  235.  
  236.             this.pack();
  237.         }
  238.  
  239.         private void createGUI()
  240.         {
  241.             String[] headers =
  242.             {
  243.                 "First Name", "Last name"
  244.             };
  245.             Object[][] values = new Object[persons.size()][headers.length];
  246.  
  247.             int i = 0;
  248.             for (Person p : persons)
  249.             {
  250.                 int j = 0;
  251.                 values[i][j++] = p.getFirstName();
  252.                 values[i][j++] = p.getLastName();
  253.  
  254.                 ++i;
  255.             }
  256.  
  257.             this.table = new JTable(new ValueTableModel(values, headers));
  258.             this.table.setShowGrid(false);
  259.             this.table.setEnabled(true);
  260.             this.table.getModel().addTableModelListener(new TableModelListener()
  261.             {
  262.                 @Override
  263.                 public void tableChanged(TableModelEvent tme)
  264.                 {
  265.                     int col = tme.getColumn();
  266.                     int row = tme.getFirstRow();
  267.                     ValueTableModel model = (ValueTableModel) tme.getSource();
  268.  
  269.                     System.out.format("Changed %s to %s. [ROW: %d; COL: %d]. -- %n", model.getColumnName(
  270.                             col), model.getValueAt(
  271.                             row, col), row, col);
  272.                 }
  273.             });
  274.             this.add(new JScrollPane(this.table), BorderLayout.CENTER);
  275.         }
  276.     }
  277. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement