Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Temat 5.
- // W języku Java, utwórz klasę do przechowywania oraz GUI do wprowadzania danych
- // wektorów w przestrzeni dwuwymiarowej (nazwa wektora, współrzędne x oraz y).
- // Projekt -> Properties -> Library -> Add Jar -> JDBC (mysql-connector-java*.jar //XAMPP
- import java.awt.BorderLayout;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.FlowLayout;
- import java.awt.GraphicsConfiguration;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.ArrayList;
- import java.util.Vector;
- import javax.swing.*;
- import javax.swing.table.DefaultTableModel;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import javax.xml.transform.Result;
- import javax.xml.transform.Source;
- import javax.xml.transform.Transformer;
- import javax.xml.transform.TransformerFactory;
- import javax.xml.transform.dom.DOMSource;
- import javax.xml.transform.stream.StreamResult;
- import org.w3c.dom.*;
- import org.hibernate.Query;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.hibernate.cfg.Configuration;
- public class Projekt1 extends JFrame implements ActionListener {
- JPanel panelGlowny, panelDanych, panelPrzyciskow, panelTabeli;
- JLabel et0, et1, et2, et3;
- DefaultTableModel modelTabeli;
- JTable Tabela;
- JTextField pole0, pole1, pole2, pole3;
- JButton przycisk1, przycisk_wczytaj, przycisk_zapisz;
- Container zawartosc;
- ArrayList<Wektor> kolekcja;
- JMenuBar pasek;
- JMenu menu1, menu2;
- JMenuItem op1, op2, op3;
- public Projekt1(GraphicsConfiguration gc) {
- super(gc);
- }
- public Projekt1() {
- super("Aplikacja");
- this.setSize(800, 600);
- this.zawartosc = this.getContentPane();
- this.panelGlowny = new JPanel(new BorderLayout());
- //Tworzenie panelu Danych
- this.panelDanych = new JPanel(new GridLayout(4, 2));
- this.et0 = new JLabel("Id: ");
- this.et1 = new JLabel("Nazwa: ");
- this.et2 = new JLabel("x: ");
- this.et3 = new JLabel("y: ");
- this.pole0 = new JTextField();
- this.pole1 = new JTextField();
- pole1.setSize(50, 200);
- this.pole2 = new JTextField();
- this.pole3 = new JTextField();
- this.panelDanych.add(this.et0);
- this.panelDanych.add(this.pole0);
- this.panelDanych.add(this.et1);
- this.panelDanych.add(this.pole1);
- this.panelDanych.add(this.et2);
- this.panelDanych.add(this.pole2);
- this.panelDanych.add(this.et3);
- this.panelDanych.add(this.pole3);
- this.panelGlowny.add(this.panelDanych, BorderLayout.WEST);
- //tworzenie Menu
- this.pasek = new JMenuBar();
- this.menu1 = new JMenu("Baza Danych");
- this.op1 = new JMenuItem("Wczytaj");
- this.op1.addActionListener(this);
- this.menu1.add(op1);
- this.op2 = new JMenuItem("Zapisz");
- this.op2.addActionListener(this);
- this.menu1.add(op2);
- this.menu2 = new JMenu("Hibernate");
- this.op3 = new JMenuItem("Wczytaj_Hibernate");
- this.op3.addActionListener(this);
- this.menu2.add(op3);
- this.pasek.add(menu1);
- this.pasek.add(menu2);
- this.setJMenuBar(pasek);
- //tworzenie panelu Przycisków i zawartosci w nim
- this.panelPrzyciskow = new JPanel(new FlowLayout());
- this.przycisk1 = new JButton("ENTER");
- this.przycisk1.addActionListener(this);
- this.przycisk_wczytaj = new JButton("WCZYTAJ");
- this.przycisk_wczytaj.addActionListener(this);
- this.przycisk_zapisz = new JButton("ZAPISZ");
- this.przycisk_zapisz.addActionListener(this);
- this.panelPrzyciskow.add(przycisk1);
- this.panelPrzyciskow.add(przycisk_wczytaj);
- this.panelPrzyciskow.add(przycisk_zapisz);
- this.panelGlowny.add(this.panelPrzyciskow, BorderLayout.SOUTH);
- //tworzenie panelu z tablica
- this.panelTabeli = new JPanel(new BorderLayout());
- this.modelTabeli = new DefaultTableModel();
- this.modelTabeli.addColumn("Id wektora");
- this.modelTabeli.addColumn("Nazwa wektora");
- this.modelTabeli.addColumn("Współrzędna x: ");
- this.modelTabeli.addColumn("Współrzędna y: ");
- // this.modelTabeli.addRow(new Vector());
- //this.modelTabeli.addRow(new Vector());
- this.Tabela = new JTable(this.modelTabeli);
- this.panelTabeli.add(new JScrollPane(this.Tabela), BorderLayout.NORTH);
- // this.panelTabeli.add(this.Tabela, BorderLayout.CENTER);
- this.panelGlowny.add(this.panelTabeli, BorderLayout.CENTER);
- this.zawartosc.add(this.panelGlowny);
- this.setDefaultCloseOperation(EXIT_ON_CLOSE);
- this.setVisible(true);
- kolekcja = new ArrayList<Wektor>();
- }
- public static void main(String[] args) {
- Projekt1 projekt1 = new Projekt1();
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- if (e.getActionCommand().equals("Wczytaj")) {
- Connection polaczenie;
- try {
- Class.forName("com.mysql.jdbc.Driver").newInstance();
- polaczenie = DriverManager.getConnection("jdbc:mysql://localhost/wektory1", "root", "");
- System.out.println(polaczenie);
- Statement instrukcja = polaczenie.createStatement();
- ResultSet wynik = instrukcja.executeQuery("SELECT * FROM wektory");
- while (wynik.next()) {
- //kolekcja.add(w);
- //Object[] dane = new Object[3];
- //dane[0] = w.getNazwa();
- //dane[1] = w.getX();
- //dane[2] = w.getY();
- Object[] dane = new Object[4];
- dane[0] = wynik.getObject("id");
- dane[1] = wynik.getObject("Nazwa");
- dane[2] = wynik.getObject("x");
- dane[3] = wynik.getObject("y");
- this.modelTabeli.addRow(dane);
- }
- polaczenie.close();
- } catch (InstantiationException ex) {
- ex.printStackTrace();
- } catch (IllegalAccessException ex) {
- ex.printStackTrace();
- } catch (ClassNotFoundException ex) {
- ex.printStackTrace();
- } catch (SQLException ex) {
- ex.printStackTrace();
- }
- }
- if (e.getActionCommand().equals("Zapisz")) {
- Connection polaczenie;
- try {
- Class.forName("com.mysql.jdbc.Driver").newInstance();
- polaczenie = DriverManager.getConnection("jdbc:mysql://localhost/wektory1", "root", "");
- Statement instrukcja = polaczenie.createStatement();
- instrukcja.executeUpdate("DELETE FROM wektory");
- for (Wektor w : kolekcja) {
- String sql = "INSERT INTO wektory SET ";
- sql += "Id='" + w.getId() + "', ";
- sql += "Nazwa='" + w.getNazwa() + "', ";
- sql += "X='" + w.getX() + "', ";
- sql += "Y='" + w.getY() + "' ";
- System.out.println(sql);
- instrukcja.executeUpdate(sql);
- }
- polaczenie.close();
- } catch (InstantiationException ex) {
- ex.printStackTrace();
- } catch (IllegalAccessException ex) {
- ex.printStackTrace();
- } catch (ClassNotFoundException ex) {
- ex.printStackTrace();
- } catch (SQLException ex) {
- ex.printStackTrace();
- }
- }
- if (e.getActionCommand().equals("Wczytaj_Hibernate")) {
- SessionFactory fabrykaSesji = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
- Session sesja = fabrykaSesji.openSession();
- Query zapytanie = sesja.createQuery("from Wektor");
- ArrayList<Wektor> rekordy = (ArrayList<Wektor>) zapytanie.list();
- for (Wektor w : rekordy) {
- // System.out.println(w.getId() + " " + w.getNazwa()+ " "+ w.getX()+ " " + w.getY());
- kolekcja.add(w);
- Object[] dane = new Object[4];
- dane[0] = w.getId();
- dane[1] = w.getNazwa();
- dane[2] = w.getX();
- dane[3] = w.getY();
- this.modelTabeli.addRow(dane);
- }
- sesja.close();
- }
- if (e.getActionCommand().equals("ENTER")) {
- Wektor w = new Wektor(Integer.parseInt(this.pole0.getText()),
- this.pole1.getText(),
- Integer.parseInt(this.pole2.getText()),
- Integer.parseInt(this.pole3.getText()));
- kolekcja.add(w);
- Object[] dane = new Object[4];
- dane[0] = w.getId();
- dane[1] = w.getNazwa();
- dane[2] = w.getX();
- dane[3] = w.getY();
- this.modelTabeli.addRow(dane);
- }
- if (e.getActionCommand().equals("WCZYTAJ")) {
- try {
- DocumentBuilderFactory fabr = DocumentBuilderFactory.newInstance();
- DocumentBuilder parser = fabr.newDocumentBuilder();
- Document dokument = parser.parse("C:\\Users\\student.INFORMATYKA\\Desktop\\test.xml");
- Element root = dokument.getDocumentElement();
- NodeList wektory = root.getElementsByTagName("wektor");
- for (int i = 0; i < wektory.getLength(); i++) {
- int id = Integer.parseInt(((Element) wektory.item(i)).getAttribute("id"));
- String nazwa = ((Element) wektory.item(i)).getAttribute("nazwa");
- int x = Integer.parseInt(((Element) wektory.item(i)).getAttribute("x"));
- int y = Integer.parseInt(((Element) wektory.item(i)).getAttribute("y"));
- Wektor w = new Wektor(id, nazwa, x, y);
- kolekcja.add(w);
- Object[] dane = new Object[4];
- dane[0] = w.getId();
- dane[1] = w.getNazwa();
- dane[2] = w.getX();
- dane[3] = w.getY();
- this.modelTabeli.addRow(dane);
- }
- } catch (Exception ex) {
- }
- }
- if (e.getActionCommand().equals("ZAPISZ")) {
- try {
- DocumentBuilderFactory fabr = DocumentBuilderFactory.newInstance();
- DocumentBuilder parser = fabr.newDocumentBuilder();
- Document dokument = parser.newDocument();
- Element root = dokument.createElement("wektory");
- dokument.appendChild(root);
- for (Wektor wektor : kolekcja) {
- Element k = dokument.createElement("wektor");
- k.setAttribute("id", String.valueOf(wektor.getId()));
- k.setAttribute("nazwa", wektor.getNazwa());
- k.setAttribute("x", String.valueOf(wektor.getX()));
- k.setAttribute("y", String.valueOf(wektor.getY()));
- root.appendChild(k);
- }
- Transformer przekszt = TransformerFactory.newInstance().newTransformer();
- Source zrodlo = new DOMSource(dokument);
- Result wyjscie = new StreamResult("C:\\Users\\student.INFORMATYKA\\Desktop\\test1.xml");
- przekszt.transform(zrodlo, wyjscie);
- } catch (Exception ex) {
- System.out.println("Wyjatek");
- }
- }
- }
- }
- //adding library hibernate.cf hibernate.hbm also jdbm connection
- //--------------Wektor.java
- import java.io.Serializable;
- import java.util.ArrayList;
- public class Wektor implements Serializable{
- String nazwa;
- public Wektor() {
- }
- public Wektor(int id, String nazwa, int x, int y) {
- this.nazwa = nazwa;
- this.x = x;
- this.y = y;
- this.id = id;
- }
- public String getNazwa() {
- return nazwa;
- }
- public void setNazwa(String nazwa) {
- this.nazwa = nazwa;
- }
- int id, x, y;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public int getX() {
- return x;
- }
- public void setX(int x) {
- this.x = x;
- }
- public int getY() {
- return y;
- }
- public void setY(int y) {
- this.y = y;
- }
- }
- //------------------------hibernate.cfg.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
- <hibernate-configuration>
- <session-factory>
- <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
- <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
- <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/wektory1?zeroDateTimeBehavior=convertToNull</property>
- <property name="hibernate.connection.username">root</property>
- <mapping resource="hibernate.hbm.xml"/>
- </session-factory>
- </hibernate-configuration>
- //--------------------------------hibernate.hbm.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping>
- <class name="Wektor" table="wektory">
- <id name="id" column="id"/>
- <property name="nazwa" column="nazwa"/>
- <property name="x" column="x"/>
- <property name="y" column="y"/>
- </class>
- </hibernate-mapping>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement