Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --myframe--
- import java.awt.Dimension;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTable;
- import javax.swing.JTextField;
- // ResultSet etipa kato pravim query ot Java kum DB(H2)
- //shte izpolzvame array list shoto e dinamichna struktura
- //ResultSet ne sa podredeni nqma indexi, ne moje se tursi, ne moje se sortira - aka torba s kartofi
- //resultseta ima mnogo obekti vutre na random, a nie iskame da e tablichno pokazano (vseki red ot DB e edin obektv ov RS)
- //resultseta ima next method i kazva dali ima sledvasht boolean type
- //v while kato vikame neksta i kajem rs.tfa deistva na sledvashtiq obekt ne na cqlata kolekciq
- //sled tfa mesti ukazatelq kum sledvashtiq i nakraq ukazatelq stiga 0 i stigame false aka stigame kraq
- //kato stigne do kraq ne mojem go obhodim pak zatfa go slagame v arraylist da mojem si go chetem kolko si puti iskame
- //moje se sloji v nachaloto null pointera ama v java e mnoooogo tegavo shoto sami trq si pishem methoda
- //KRIQT MI BQLOTO
- //IZPOLZVAME JTABLE DA VISUALIZIRAME ISKA 2 PARAMETURA ([],[][]) imena na koloni v String
- //settable ima setbodle(tablemodel)
- public class MyFrame extends JFrame{
- Connection conn=null;
- PreparedStatement state=null;
- ResultSet result = null;
- MyModel model = null;
- JPanel topP = new JPanel();
- JPanel midP = new JPanel();
- JPanel bottomP=new JPanel();
- JLabel nameL=new JLabel("name");
- JLabel ageL=new JLabel("age");
- JLabel salaryL=new JLabel("salary");
- JTextField nameTF=new JTextField();
- JTextField ageTF=new JTextField();
- JTextField salaryTF=new JTextField();
- JButton addB=new JButton("ADD");
- JButton delB=new JButton("DELETE");
- JButton editB=new JButton("EDIT");
- JButton searchB=new JButton("SEARCH");
- JTable table = new JTable();
- JScrollPane scroller = new JScrollPane(table);//tuka se skrolira v/u tablicata
- public MyFrame(){
- this.setVisible(true);
- this.setSize(500,500);
- this.setDefaultCloseOperation(EXIT_ON_CLOSE);
- this.setLayout(new GridLayout(3,1));
- this.add(topP);
- this.add(midP);
- this.add(bottomP);
- //topPanel
- topP.setLayout(new GridLayout(3,2));
- topP.add(nameL);
- topP.add(nameTF);
- topP.add(ageL);
- topP.add(ageTF);
- topP.add(salaryL);
- topP.add(salaryTF);
- //midPanel
- midP.add(addB);
- midP.add(delB);
- midP.add(editB);
- midP.add(searchB);
- addB.addActionListener(new AddAction());
- searchB.addActionListener(new SearchAction());
- //botPanel
- scroller.setPreferredSize(new Dimension(450,150));
- bottomP.add(scroller);
- }//end constructor
- public void getAllData(){
- String sql="select * from human;";
- conn=DBConnector.getConnected();
- try {
- state =conn.prepareStatement(sql);
- result = state.executeQuery();
- model = new MyModel(result);
- table.setModel(model);
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }finally {
- try {
- conn.close();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }// getAllData();
- class AddAction implements ActionListener{
- @Override
- public void actionPerformed(ActionEvent arg0) {
- String name=nameTF.getText();
- int age=Integer.parseInt(ageTF.getText());
- float salary=Float.parseFloat(salaryTF.getText());
- String sql="insert into human values(null,?,?,?);";
- conn=DBConnector.getConnected();
- try {
- state =conn.prepareStatement(sql);
- state.setString(1, name);
- state.setFloat(3, salary);
- state.setInt(2, age);
- state.execute(); // true ili false dali e minala ili ne
- getAllData();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }finally{try {
- conn.close();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }}
- }}
- class SearchAction implements ActionListener{
- @Override
- public void actionPerformed(ActionEvent arg0) {
- String name=nameTF.getText();
- String sql="select * from human where name=?;";
- conn=DBConnector.getConnected();
- try {
- state =conn.prepareStatement(sql);
- state.setString(1, name);
- result = state.executeQuery();
- while (result.next()){
- System.out.println(result.getString("age"));
- }
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
- --mymodel--
- import java.sql.ResultSet;
- import java.sql.ResultSetMetaData;
- import java.util.ArrayList;
- import javax.swing.table.AbstractTableModel;
- public class MyModel extends AbstractTableModel {
- /*
- nasledqvame go shoto e abstrakten ne moga si suzdam obekt
- */
- private static final long serialVersionUID = 1L;
- private ResultSet result;
- private int rowCount;
- private int columnCount;
- private ArrayList<Object> data=new ArrayList<Object>();
- public MyModel(ResultSet rs) throws Exception
- {
- setRS(rs);
- }// end constructor
- public void setRS(ResultSet rs) throws Exception
- {
- this.result=rs;
- ResultSetMetaData metaData=rs.getMetaData();
- rowCount=0;
- columnCount=metaData.getColumnCount();
- while(rs.next()){
- Object[] row=new Object[columnCount];
- for(int j=0;j<columnCount;j++){
- row[j]=rs.getObject(j+1);
- }
- data.add(row);
- rowCount++;
- }// while
- }// end setRS - filling ArrayList with ResultSet values
- public int getColumnCount(){
- return columnCount;
- }
- public int getRowCount(){
- return rowCount;
- }
- public Object getValueAt(int rowIndex, int columnIndex){
- Object[] row=(Object[]) data.get(rowIndex);
- return row[columnIndex];
- }
- public String getColumnName(int columnIndex){
- try{
- ResultSetMetaData metaData=result.getMetaData();
- return metaData.getColumnName(columnIndex+1);
- }
- catch(Exception e){
- e.printStackTrace();
- return null;
- }
- }// end getColumnName
- } // end class MyModel
- --main--
- public class MainClass {
- public static void main(String[] args) {
- MyFrame mf=new MyFrame();
- }
- }
- --db connector--
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- public class DBConnector {
- static Connection conn=null;
- public static Connection getConnected(){
- try {
- Class.forName("org.h2.Driver");
- conn=DriverManager.getConnection("jdbc:h2:tcp://localhost/~/myNDB","sa","");
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }finally {return conn;}
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement