Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.13 KB | None | 0 0
  1. --myframe--
  2.  
  3. import java.awt.Dimension;
  4. import java.awt.GridLayout;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.sql.Connection;
  8. import java.sql.PreparedStatement;
  9. import java.sql.ResultSet;
  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.JPanel;
  16. import javax.swing.JScrollPane;
  17. import javax.swing.JTable;
  18. import javax.swing.JTextField;
  19.  
  20.  
  21. // ResultSet etipa kato pravim query ot Java kum DB(H2)
  22. //shte izpolzvame array list shoto e dinamichna struktura
  23. //ResultSet ne sa podredeni nqma indexi, ne moje se tursi, ne moje se sortira - aka torba s kartofi
  24. //resultseta ima mnogo obekti vutre na random, a nie iskame da e tablichno pokazano (vseki red ot DB e edin obektv ov RS)
  25. //resultseta ima next method i kazva dali ima sledvasht boolean type
  26. //v while kato vikame neksta  i kajem rs.tfa deistva na sledvashtiq obekt ne na cqlata kolekciq
  27. //sled tfa mesti ukazatelq kum sledvashtiq i nakraq ukazatelq stiga 0 i stigame false aka stigame kraq
  28. //kato stigne do kraq ne mojem go obhodim pak zatfa go slagame v arraylist da mojem si go chetem kolko si puti iskame
  29. //moje se sloji v nachaloto null pointera ama v java e mnoooogo tegavo shoto sami trq si pishem methoda
  30. //KRIQT MI BQLOTO
  31. //IZPOLZVAME JTABLE DA VISUALIZIRAME ISKA 2 PARAMETURA ([],[][]) imena na koloni v String
  32. //settable ima setbodle(tablemodel)
  33. public class MyFrame extends JFrame{
  34.    
  35.     Connection conn=null;
  36.     PreparedStatement state=null;
  37.     ResultSet result = null;
  38.     MyModel model = null;
  39.    
  40.     JPanel topP = new JPanel();
  41.     JPanel midP = new JPanel();
  42.     JPanel bottomP=new JPanel();
  43.    
  44.     JLabel nameL=new JLabel("name");
  45.     JLabel ageL=new JLabel("age");
  46.     JLabel salaryL=new JLabel("salary");
  47.    
  48.     JTextField nameTF=new JTextField();
  49.     JTextField ageTF=new JTextField();
  50.     JTextField salaryTF=new JTextField();
  51.    
  52.     JButton addB=new JButton("ADD");
  53.     JButton delB=new JButton("DELETE");
  54.     JButton editB=new JButton("EDIT");
  55.     JButton searchB=new JButton("SEARCH");
  56.    
  57.     JTable table = new JTable();
  58.     JScrollPane scroller = new JScrollPane(table);//tuka se skrolira v/u tablicata
  59.    
  60.    
  61.    
  62.    
  63.    
  64.     public MyFrame(){
  65.         this.setVisible(true);
  66.         this.setSize(500,500);
  67.         this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  68.         this.setLayout(new GridLayout(3,1));
  69.         this.add(topP);
  70.         this.add(midP);
  71.         this.add(bottomP);
  72.        
  73.         //topPanel
  74.         topP.setLayout(new GridLayout(3,2));
  75.         topP.add(nameL);
  76.         topP.add(nameTF);
  77.         topP.add(ageL);
  78.         topP.add(ageTF);
  79.         topP.add(salaryL);
  80.         topP.add(salaryTF);
  81.        
  82.         //midPanel
  83.         midP.add(addB);
  84.         midP.add(delB);
  85.         midP.add(editB);
  86.         midP.add(searchB);
  87.         addB.addActionListener(new AddAction());
  88.         searchB.addActionListener(new SearchAction());
  89.        
  90.         //botPanel
  91.         scroller.setPreferredSize(new Dimension(450,150));
  92.         bottomP.add(scroller);
  93.        
  94.     }//end constructor
  95.    
  96.     public void getAllData(){  
  97.        
  98.         String sql="select * from human;";     
  99.        
  100.         conn=DBConnector.getConnected();
  101.         try {
  102.             state =conn.prepareStatement(sql);         
  103.             result = state.executeQuery();
  104.             model = new MyModel(result);
  105.             table.setModel(model);
  106.         }   catch (SQLException e) {
  107.             // TODO Auto-generated catch block
  108.             e.printStackTrace();
  109.             } catch (Exception e) {
  110.             // TODO Auto-generated catch block
  111.             e.printStackTrace();
  112.         }finally {
  113.             try {
  114.                 conn.close();
  115.             } catch (SQLException e) {
  116.                 // TODO Auto-generated catch block
  117.                 e.printStackTrace();
  118.             }
  119.         }
  120.     }// getAllData();
  121.  
  122.     class AddAction implements ActionListener{
  123.  
  124.         @Override
  125.         public void actionPerformed(ActionEvent arg0) {
  126.             String name=nameTF.getText();
  127.             int age=Integer.parseInt(ageTF.getText());
  128.             float salary=Float.parseFloat(salaryTF.getText());
  129.             String sql="insert into human values(null,?,?,?);";
  130.            
  131.             conn=DBConnector.getConnected();
  132.             try {
  133.                 state =conn.prepareStatement(sql);
  134.                 state.setString(1, name);
  135.                 state.setFloat(3, salary);
  136.                 state.setInt(2, age);
  137.                 state.execute(); // true ili false dali e minala ili ne
  138.                 getAllData();
  139.                
  140.             } catch (SQLException e) {
  141.                 // TODO Auto-generated catch block
  142.                 e.printStackTrace();
  143.             }finally{try {
  144.                 conn.close();
  145.             } catch (SQLException e) {
  146.                 // TODO Auto-generated catch block
  147.                 e.printStackTrace();
  148.             }}
  149.            
  150.            
  151.            
  152.         }}
  153.    
  154.    
  155.    
  156.     class SearchAction implements ActionListener{
  157.  
  158.         @Override
  159.         public void actionPerformed(ActionEvent arg0) {
  160.             String name=nameTF.getText();
  161.             String sql="select * from human where name=?;";
  162.            
  163.            
  164.             conn=DBConnector.getConnected();
  165.             try {
  166.                 state =conn.prepareStatement(sql);
  167.                 state.setString(1, name);
  168.                 result = state.executeQuery();
  169.                
  170.                 while (result.next()){
  171.                     System.out.println(result.getString("age"));
  172.                 }
  173.                
  174.                
  175.             }   catch (SQLException e) {
  176.                 // TODO Auto-generated catch block
  177.                 e.printStackTrace();
  178.                 }
  179.             }
  180.         }
  181.     }
  182.  
  183. --mymodel--
  184. import java.sql.ResultSet;
  185. import java.sql.ResultSetMetaData;
  186. import java.util.ArrayList;
  187.  
  188. import javax.swing.table.AbstractTableModel;
  189.  
  190.  
  191. public class MyModel extends AbstractTableModel {
  192.    
  193.      
  194.      /*
  195.      nasledqvame go shoto e abstrakten ne moga si suzdam obekt
  196.      
  197.      */
  198.     private static final long serialVersionUID = 1L;
  199.     private ResultSet result;  
  200.     private int rowCount;  
  201.     private int columnCount;
  202.     private ArrayList<Object> data=new ArrayList<Object>();
  203.      
  204.      public MyModel(ResultSet rs) throws Exception
  205.      {
  206.          setRS(rs);
  207.      }// end constructor
  208.      
  209.      public void setRS(ResultSet rs) throws Exception
  210.      {
  211.          this.result=rs;
  212.          ResultSetMetaData metaData=rs.getMetaData();
  213.          rowCount=0;
  214.          columnCount=metaData.getColumnCount();
  215.          
  216.          while(rs.next()){
  217.              Object[] row=new Object[columnCount];
  218.              for(int j=0;j<columnCount;j++){
  219.              row[j]=rs.getObject(j+1);
  220.              }           
  221.              data.add(row);
  222.              rowCount++;
  223.         }// while
  224.      }// end setRS - filling ArrayList with ResultSet values
  225.      
  226.      public int getColumnCount(){
  227.          return columnCount;
  228.      }
  229.      
  230.      public int getRowCount(){
  231.          return rowCount;
  232.      }
  233.      
  234.      public Object getValueAt(int rowIndex, int columnIndex){
  235.          Object[] row=(Object[]) data.get(rowIndex);
  236.          return row[columnIndex];
  237.      }
  238.      
  239.      public String getColumnName(int columnIndex){
  240.          try{
  241.          ResultSetMetaData metaData=result.getMetaData();
  242.          return metaData.getColumnName(columnIndex+1);
  243.          }
  244.          catch(Exception e){
  245.              e.printStackTrace();
  246.              return null;
  247.          }
  248.      }// end getColumnName
  249. } // end class MyModel
  250. --main--
  251.  
  252. public class MainClass {
  253.  
  254.     public static void main(String[] args) {
  255.         MyFrame mf=new MyFrame();
  256.        
  257.  
  258.     }
  259.  
  260. }
  261. --db connector--
  262. import java.sql.Connection;
  263. import java.sql.DriverManager;
  264. import java.sql.SQLException;
  265.  
  266. public class DBConnector {
  267.    
  268.     static Connection conn=null;
  269.    
  270.     public static Connection getConnected(){
  271.        
  272.         try {
  273.             Class.forName("org.h2.Driver");
  274.             conn=DriverManager.getConnection("jdbc:h2:tcp://localhost/~/myNDB","sa","");
  275.         } catch (ClassNotFoundException e) {
  276.             // TODO Auto-generated catch block
  277.             e.printStackTrace();
  278.         } catch (SQLException e) {
  279.             // TODO Auto-generated catch block
  280.             e.printStackTrace();
  281.         }finally {return conn;}
  282.        
  283.        
  284.     }
  285.  
  286. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement