Advertisement
Guest User

Untitled

a guest
Nov 26th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 16.22 KB | None | 0 0
  1. package marcinrosol.kawiarnia;
  2. import java.awt.BorderLayout;
  3. import java.awt.Color;
  4. import java.awt.Container;
  5. import java.awt.FlowLayout;
  6. import java.awt.GridLayout;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.sql.Connection;
  10. import java.sql.DriverManager;
  11. import java.sql.ResultSet;
  12. import java.sql.Statement;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15.  
  16. import javax.swing.JButton;
  17. import javax.swing.JFrame;
  18. import javax.swing.JLabel;
  19. import javax.swing.JMenu;
  20. import javax.swing.JMenuBar;
  21. import javax.swing.JMenuItem;
  22. import javax.swing.JPanel;
  23. import javax.swing.JRadioButton;
  24. import javax.swing.JScrollPane;
  25. import javax.swing.JTable;
  26. import javax.swing.JTextField;
  27. import javax.swing.table.DefaultTableModel;
  28. import javax.xml.parsers.DocumentBuilder;
  29. import javax.xml.parsers.DocumentBuilderFactory;
  30. import javax.xml.transform.Result;
  31. import javax.xml.transform.Source;
  32. import javax.xml.transform.Transformer;
  33. import javax.xml.transform.TransformerFactory;
  34. import javax.xml.transform.dom.DOMSource;
  35. import javax.xml.transform.stream.StreamResult;
  36.  
  37. import org.hibernate.Query;
  38. import org.hibernate.Session;
  39. import org.hibernate.SessionFactory;
  40. import org.hibernate.cfg.Configuration;
  41. import org.w3c.dom.Document;
  42. import org.w3c.dom.Element;
  43. import org.w3c.dom.NodeList;
  44.  
  45. public class Gui extends JFrame implements ActionListener{
  46.  
  47.      Container container;
  48.      
  49.      JPanel panelGlowny;
  50.      
  51.      JPanel panelPrzyciskow;
  52.      JPanel panelDanych;
  53.      JPanel panelTabeli;
  54.      JPanel panelRadio;
  55.      JPanel panelBazy;
  56.      
  57.      JPanel west;
  58.      JPanel center;
  59.      JPanel east;
  60.      
  61.       JLabel labelRodzaj;
  62.       JLabel labelWielkosc;
  63.       JLabel labelCena;
  64.      
  65.       JTextField pole1;
  66.       JTextField pole2;
  67.       JTextField pole3;
  68.      
  69.      JTable tabela;
  70.      
  71.      JButton przyciskDodaj;
  72.      JButton wczytajXML;
  73.      JButton zapiszXML;
  74.      JButton odczytBaza;
  75.      JButton zapisBaza;
  76.    
  77.      JRadioButton duza;
  78.      JRadioButton srednia;
  79.      JRadioButton mala;
  80.      
  81.      JMenuBar menuBar;
  82.      JMenu menuBaza;
  83.      JMenuItem odczytHibernate;
  84.      JMenuItem zapiszHibernate;
  85.      
  86.      DefaultTableModel modelTabeli;
  87.      
  88.       ArrayList<Kawa> kolekcja;
  89.      
  90.    
  91.     public Gui() {
  92.        
  93.         super("Kawiarnia");
  94.         setSize(500,650);
  95.         this.container = getContentPane();
  96.         this.kolekcja = new ArrayList();
  97.        
  98.         this.west = new JPanel(new FlowLayout());
  99.         this.center = new JPanel(new FlowLayout());
  100.         this.east = new JPanel(new FlowLayout());
  101.        
  102.         this.panelGlowny = new JPanel(new BorderLayout());
  103.         this.panelTabeli = new JPanel(new FlowLayout());
  104.         this.panelDanych = new JPanel(new GridLayout(3, 2));
  105.         this.panelRadio = new JPanel(new GridLayout(3,1));
  106.         this.panelBazy = new JPanel(new GridLayout(4,1));
  107.         this.panelPrzyciskow = new JPanel(new FlowLayout());
  108.        
  109.        
  110.         //tworzenie i nadanie napisow do radio button
  111.         this.duza = new JRadioButton("Duza", true);
  112.         this.srednia = new JRadioButton("Srednia", true);
  113.         this.mala = new JRadioButton("Mala", true);
  114.         this.duza.addActionListener(this);
  115.         this.srednia.addActionListener(this);
  116.         this.mala.addActionListener(this);
  117.        
  118.         this.panelRadio.add(this.duza);
  119.         this.panelRadio.add(this.srednia);
  120.         this.panelRadio.add(this.mala);
  121.         this.center.add(this.panelRadio);
  122.        
  123.        //menu bar
  124.         this.menuBar = new JMenuBar();
  125.         this.menuBaza = new JMenu("Hibernate");
  126.         this.odczytHibernate = new JMenuItem("Odczyt Hibernate");
  127.         this.zapiszHibernate = new JMenuItem("zapis Hibernate");
  128.        
  129.         this.menuBaza.add(this.odczytHibernate);
  130.         this.menuBaza.add(this.zapiszHibernate);
  131.         this.menuBar.add(this.menuBaza);
  132.        
  133.         this.setJMenuBar(this.menuBar);
  134.        
  135.         //tworzenie i nadanie napisow do przycisku
  136.         this.zapiszXML = new JButton("zapis do xml");
  137.         this.wczytajXML = new JButton("wczytaj xml");
  138.         this.przyciskDodaj = new JButton("dodaj");
  139.         this.odczytBaza = new JButton("Odczyt z bazy");
  140.         this.zapisBaza = new JButton("Zapis do bazy");
  141.        
  142.         this.panelPrzyciskow.add(this.przyciskDodaj);
  143.        
  144.         this.panelBazy.add(this.odczytBaza);
  145.         this.panelBazy.add(this.zapisBaza);
  146.         this.panelBazy.add(this.zapiszXML);
  147.         this.panelBazy.add(this.wczytajXML);
  148.         this.east.add(this.panelBazy);
  149.        
  150.         this.labelRodzaj = new JLabel("Rodzaj");
  151.         this.labelWielkosc = new JLabel("Wielkosc");
  152.         this.labelCena = new JLabel("cena");
  153.        
  154.         //dodawanie tabeli
  155.         this.modelTabeli = new DefaultTableModel();//model tabeli
  156.         this.modelTabeli.addColumn("Rodzaj");
  157.         this.modelTabeli.addColumn("Rozmiar");
  158.         this.modelTabeli.addColumn("Cena");
  159.        
  160.         //tworzenie pola tekstowego
  161.         this.pole1 = new JTextField();
  162.         this.pole2  = new JTextField();
  163.         this.pole3 = new JTextField();
  164.        
  165.         //dodawanie labelow i pola tekstowego
  166.         this.panelDanych.add(this.labelRodzaj);
  167.         this.panelDanych.add(this.pole1);
  168.         this.panelDanych.add(this.labelWielkosc);
  169.         this.panelDanych.add(this.pole2);
  170.         this.panelDanych.add(this.labelCena);
  171.         this.panelDanych.add(this.pole3);
  172.         this.west.add(this.panelDanych);
  173.        
  174.        
  175.        
  176.         this.tabela = new JTable(this.modelTabeli);
  177.         this.panelTabeli.add(new JScrollPane(this.tabela));
  178.        
  179.         this.przyciskDodaj.addActionListener(this);
  180.         this.wczytajXML.addActionListener(this);
  181.         this.zapiszXML.addActionListener(this);
  182.        
  183.         this.odczytBaza.addActionListener(this);
  184.         this.zapisBaza.addActionListener(this);
  185.     //  this.duza.addActionListener(this);
  186.        
  187.         this.panelGlowny.add(this.panelTabeli,"North");
  188.         this.panelGlowny.add(this.west, "West");
  189.         this.panelGlowny.add(this.center, "Center");
  190.         this.panelGlowny.add(this.east, "East");
  191.         this.panelGlowny.add(this.panelPrzyciskow, "South");
  192.        
  193.         this.container.add(this.panelGlowny);
  194.        
  195.         setDefaultCloseOperation(EXIT_ON_CLOSE);//zamyka aplikacje
  196.         setVisible(true);
  197.     }
  198.    
  199.     @Override
  200.     public void actionPerformed(ActionEvent e) {
  201.         if(e.getActionCommand().equalsIgnoreCase("dodaj")) {
  202.         dodaj();
  203.         }
  204.         if(e.getActionCommand().equalsIgnoreCase("wczytaj xml")) {
  205.             clear();
  206.             fileOpen();
  207.         }
  208.         if(e.getActionCommand().equalsIgnoreCase("zapis do xml")) {
  209.             fileSave();
  210.         }
  211.         if(e.getActionCommand().equalsIgnoreCase("zapis do bazy")) {
  212.             sqlSave();
  213.         }
  214.         if(e.getActionCommand().equalsIgnoreCase("odczyt z bazy")) {
  215.             HybernateWczytaj();
  216.         }
  217.        
  218.     }
  219.    
  220.     private void dodaj() {
  221.  
  222.         Kawa k = new Kawa();
  223.         k.setRodzaj(this.pole1.getText());
  224.         k.setRozmiar(this.pole2.getText());
  225.         k.setCena(Float.valueOf(this.pole3.getText()));
  226.        
  227.         Object[] obiekt = new Object[3];
  228.         obiekt[0] = k.getRodzaj();
  229.         obiekt[1]=k.getRozmiar();
  230.         obiekt[2]=k.getCena();
  231.        
  232.         this.kolekcja.add(k);
  233.         this.modelTabeli.addRow(obiekt);
  234.        
  235.         this.pole1.setText("");
  236.         this.pole2.setText("");
  237.         this.pole3.setText("");
  238.     }
  239.  
  240.     private void clear() {
  241.         this.modelTabeli.setRowCount(0);
  242.         this.kolekcja.clear();
  243.     }
  244.     private void fileSave() {
  245.         System.out.println("zapis");
  246.         try
  247.         {
  248.           DocumentBuilderFactory fabr = DocumentBuilderFactory.newInstance();
  249.           DocumentBuilder parser = fabr.newDocumentBuilder();
  250.           Document dokument = parser.newDocument();
  251.          
  252.           Element root = dokument.createElement("ksiazki");
  253.           dokument.appendChild(root);
  254.           for (Kawa k : this.kolekcja)
  255.           {
  256.             Element ks = dokument.createElement("kawa");
  257.             ks.setAttribute("rodzaj", k.getRodzaj());
  258.             ks.setAttribute("wielkosc", k.getRozmiar());
  259.             ks.setAttribute("cena", String.valueOf(k.getCena()));
  260.             root.appendChild(ks);
  261.           }
  262.          
  263.           Transformer przekszt = TransformerFactory.newInstance().newTransformer();
  264.           Object zrodlo = new DOMSource(dokument);
  265.           Result wyjscie = new StreamResult("daneZapis.xml");
  266.           przekszt.transform((Source)zrodlo, wyjscie);
  267.         }
  268.         catch (Exception ex)
  269.         {
  270.             String msg = ex.getMessage();
  271.             if (msg == null) {
  272.                 msg = ex.getClass().getName();
  273.             }
  274.             System.out.println("Exception: " + msg);
  275.         }
  276.     }
  277.     private void fileOpen() {
  278.         try {
  279.             DocumentBuilderFactory fabr = DocumentBuilderFactory.newInstance();
  280.             DocumentBuilder parser = fabr.newDocumentBuilder();
  281.             Document dokument = parser.parse("wczytaj.xml");
  282.             Element root = dokument.getDocumentElement();
  283.             NodeList kawa = root.getElementsByTagName("kawa");
  284.            
  285.                 for(int i = 0; i < kawa.getLength(); i++) {
  286.                      
  287.                     String rodzaj = ((Element)kawa.item(i)).getAttribute("rodzaj");
  288.                     String wielkosc = ((Element)kawa.item(i)).getAttribute("wielkosc");
  289.                     float cena = Float.parseFloat(((Element)kawa.item(i)).getAttribute("cena"));
  290.                    
  291.                     if(duza.isSelected() == true && wielkosc.equalsIgnoreCase("duza")) {
  292.                         Kawa k = new Kawa(rodzaj, wielkosc, cena);
  293.                         Object[] dane = new Object[3];
  294.                         dane[0] = k.getRodzaj();
  295.                         dane[1] = k.getRozmiar();
  296.                         dane[2] = k.getCena();
  297.                         this.modelTabeli.addRow(dane);
  298.                         this.kolekcja.add(k);
  299.                     }
  300.                     if(srednia.isSelected() == true && wielkosc.equalsIgnoreCase("srednia")) {
  301.                         Kawa k = new Kawa(rodzaj, wielkosc, cena);
  302.                         Object[] dane = new Object[3];
  303.                         dane[0] = k.getRodzaj();
  304.                         dane[1] = k.getRozmiar();
  305.                         dane[2] = k.getCena();
  306.                         this.modelTabeli.addRow(dane);
  307.                         this.kolekcja.add(k);
  308.                     }
  309.                     if(mala.isSelected() == true && wielkosc.equalsIgnoreCase("mala")) {
  310.                         Kawa k = new Kawa(rodzaj, wielkosc, cena);
  311.                         Object[] dane = new Object[3];
  312.                         dane[0] = k.getRodzaj();
  313.                         dane[1] = k.getRozmiar();
  314.                         dane[2] = k.getCena();
  315.                         this.modelTabeli.addRow(dane);
  316.                         this.kolekcja.add(k);
  317.                     }
  318.                    
  319.                 }
  320.                
  321.             System.out.println("klik");
  322.         }catch (Exception ex) {
  323.             String msg = ex.getMessage();
  324.             if (msg == null) {
  325.                 msg = ex.getClass().getName();
  326.             }
  327.             System.out.println("Exception: " + msg);
  328.         }
  329.     }
  330.    
  331.     private void sqlSave() {
  332.           System.out.println("sql save");
  333.           Connection polaczenie;
  334.           try {
  335.               Class.forName("com.mysql.jdbc.Driver").newInstance();
  336.               polaczenie = DriverManager.getConnection("jdbc:mysql://localhost/Kawa", "root", "");
  337.              
  338.               Statement instrukcja = polaczenie.createStatement();
  339.               instrukcja.executeUpdate("DELETE FROM Kawa");
  340.              
  341.               for (Kawa k: kolekcja)
  342.               {
  343.                   String sql ="INSERT INTO kawa SET ";
  344.                   sql+="WIELKOSC='"+k.getRozmiar()+"', ";
  345.                   sql+="RODZAJ='"+k.getRodzaj()+"', ";
  346.                   sql+="CENA='"+k.getCena()+"'";
  347.                  
  348.                           System.out.println(sql);
  349.                           instrukcja.executeUpdate(sql);
  350.               }
  351.               polaczenie.close();
  352.           }catch(Exception ex) {
  353.               String msg = ex.getMessage();
  354.             if (msg == null) {
  355.                 msg = ex.getClass().getName();
  356.             }
  357.             System.out.println("Exception: " + msg);
  358.             }
  359.          
  360.       }
  361.     private void sqlLoad() {
  362.             Connection polaczenie;
  363.             try {
  364.                 Class.forName("com.mysql.jdbc.Driver").newInstance();
  365.                 polaczenie = DriverManager.getConnection("jdbc:mysql://localhost/Kawka", "root", "");//TUTAJ POPRAWIC URL
  366.                 System.out.println(polaczenie);
  367.                
  368.                 Statement instrukcja = polaczenie.createStatement();
  369.                 //ResultSet wynik = instrukcja.executeQuery("SELECT * FROM KAWA");
  370.                 ResultSet wynik =instrukcja.executeQuery("SELECT * FROM KAWA");
  371.                 if(duza.isSelected() == true) {
  372.                      wynik = instrukcja.executeQuery("SELECT * FROM KAWA WHERE WIELKOSC = 'duza'");
  373.                      while (wynik.next()) {
  374.                     Object[] dane = new Object[3];
  375.                     dane[0] = wynik.getObject("RODZAJ");
  376.                     dane[1] = wynik.getObject("WIELKOSC");
  377.                     dane[2] = wynik.getObject("CENA");
  378.                     this.modelTabeli.addRow(dane);
  379.                     Kawa k= new Kawa((String)dane[0],(String)dane[1],(float)dane[2]);
  380.                     kolekcja.add(k);
  381.                      }
  382.                 }
  383.                 if(srednia.isSelected() == true) {
  384.                      wynik = instrukcja.executeQuery("SELECT * FROM KAWA WHERE WIELKOSC = 'srednia'");
  385.                      while (wynik.next()) {
  386.                     Object[] dane = new Object[3];
  387.                     dane[0] = wynik.getObject("RODZAJ");
  388.                     dane[1] = wynik.getObject("WIELKOSC");
  389.                     dane[2] = wynik.getObject("CENA");
  390.                     this.modelTabeli.addRow(dane);
  391.                     Kawa k= new Kawa((String)dane[0],(String)dane[1],(float)dane[2]);
  392.                     kolekcja.add(k);
  393.                      }
  394.                 }
  395.                 if(mala.isSelected() == true) {
  396.                      wynik = instrukcja.executeQuery("SELECT * FROM KAWA WHERE WIELKOSC = 'mala'");
  397.                      while (wynik.next()) {
  398.                     Object[] dane = new Object[3];
  399.                     dane[0] = wynik.getObject("RODZAJ");
  400.                     dane[1] = wynik.getObject("WIELKOSC");
  401.                     dane[2] = wynik.getObject("CENA");
  402.                     this.modelTabeli.addRow(dane);
  403.                     Kawa k= new Kawa((String)dane[0],(String)dane[1],(float)dane[2]);
  404.                     kolekcja.add(k);
  405.                      }
  406.                 }
  407.                
  408.                
  409.                 polaczenie.close();
  410.             }catch(Exception ex) {
  411.                 String msg = ex.getMessage();
  412.                 if (msg == null) {
  413.                     msg = ex.getClass().getName();
  414.                 }
  415.                 System.out.println("Exception: " + msg);
  416.             }
  417.            
  418.            
  419.       }
  420.    
  421.     private void HybernateWczytaj() {
  422.         System.out.println("hybernate wczytaj");
  423.         try {
  424.         SessionFactory fabrykaSesji = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
  425.         Session sesja = fabrykaSesji.openSession();
  426.         Query zapytanie = sesja.createQuery("from Kawa"); // TODO: POPRAWIC TUTAJ JAK BEDZIE ZLE Z BAZA DANYCH
  427.         kolekcja = (ArrayList<Kawa>)zapytanie.list();
  428.        
  429.         for(Kawa k : kolekcja) {
  430.             Object[] dane = new Object[3];
  431.             dane[0] = k.getRodzaj();
  432.             dane[1] = k.getRozmiar();
  433.             dane[2] = k.getCena();
  434.             this.modelTabeli.addRow(dane);
  435.         }
  436.         sesja.close();
  437.         }catch(Exception ex) {
  438.             String msg = ex.getMessage();
  439.         if (msg == null) {
  440.             msg = ex.getClass().getName();
  441.         }
  442.         System.out.println("Exception: " + msg);};
  443.     }
  444. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement