Mam problem z uzyciem hibernate, nie chce odczytac mi mojej bazy relacyjnej, nie wyswietlaja sie zadne bledu tylko po nacisnieciu przycisku nic sie nie dzieje, baze relacyjna mam na pewno dobrze zrobiona, pomoze ktos?
**<?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="Drukarka" table="d">
<id name="Id" column="ID"/>
<property name="rodzaj" column="rodzaj"/>
<property name="oznaczenie" column="oznaczenie" />
</class>
</hibernate-mapping>
<?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/drukarka?zeroDateTimeBehavior=convertToNull</property>
<property name="hibernate.connection.username">root</property>
<mapping resource="hibernate.hbm.xml"/>
<mapping resource="javaapplication59/hibernate.hbm.xml"/>
<mapping/>
</session-factory>
</hibernate-configuration>
**
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GraphicsConfiguration;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.Serializable;
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 java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JFrame;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
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.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class GUI extends JFrame implements ActionListener {
private JTextField i,n;
private JLabel il,nl;
private JPanel paneldanych,panelprzyciskow,panel2,Tabela,panelGlowny;
private JButton przycisk,przycisk2,przycisk3,przycisk4,przycisk5;
private JMenuBar pasek;
private JMenu baza,opcje,help;
private JMenuItem op1,op2,op3;
DefaultTableModel modeltabeli;
private JTable tabela;
Container zawartosc;
ArrayList<Drukarka> kolekcja;
private Object dok;
public GUI(GraphicsConfiguration gc){
super(gc);
}
public GUI(){
kolekcja=new ArrayList<Drukarka>();
this.setTitle("aplikacja");
setSize(800,600);
this.zawartosc=this.getContentPane();
this.panelGlowny=new JPanel(new BorderLayout()); //border N S W E
this.paneldanych=new JPanel(new GridLayout(2,2)); //siatkowy
this.panelprzyciskow=new JPanel(new FlowLayout());
this.przycisk=new JButton("dodaj");
this.przycisk2=new JButton("wczytaj xml");
this.przycisk3=new JButton("zapisz xml");
this.przycisk5=new JButton("zapisz relacyjnie");
this.przycisk4=new JButton("odczyt hibernate");
this.przycisk.addActionListener(this);
this.przycisk2.addActionListener(this);
this.przycisk3.addActionListener(this);
this.przycisk5.addActionListener(this);
this.przycisk4.addActionListener(this);
this.panelGlowny.add(this.panelprzyciskow,BorderLayout.SOUTH);
this.panelGlowny.add(this.paneldanych, BorderLayout.WEST);
this.panelprzyciskow.add(this.przycisk);
this.panelprzyciskow.add(this.przycisk2);
this.panelprzyciskow.add(this.przycisk3);
this.panelprzyciskow.add(this.przycisk5);
this.panelprzyciskow.add(this.przycisk4);
this.Tabela=new JPanel(new BorderLayout());
this.modeltabeli=new DefaultTableModel();
this.modeltabeli.addColumn("rodzaj");
this.modeltabeli.addColumn("oznaczenie");
//this.modeltabeli.addRow(new Vector());
this.tabela=new JTable(this.modeltabeli);
this.Tabela.add(this.tabela,BorderLayout.CENTER);
this.panelGlowny.add(this.Tabela,BorderLayout.CENTER);
this.Tabela.add(new JScrollPane(this.tabela),BorderLayout.CENTER);
this.il = new JLabel("podaj rodzaj");
this.paneldanych.add(this.il);
this.i=new JTextField();
this.paneldanych.add(this.i);
this.nl = new JLabel("podaj oznaczenie");
this.paneldanych.add(this.nl);
this.n=new JTextField();
this.paneldanych.add(this.n);
this.zawartosc.add(this.panelGlowny);
pasek=new JMenuBar();
baza = new JMenu("Baza");
opcje = new JMenu("Opcje");
help = new JMenu("help");
pasek.add(baza);
pasek.add(opcje);
pasek.add(help);
this.setJMenuBar(pasek);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new GUI();
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("dodaj"))
{
Drukarka b=new Drukarka(this.i.getText(),this.n.getText());
this.kolekcja.add(b);
Object[] dane= new Object[4];
dane[0]=b.getRodzaj();
dane[1]=b.getOznaczenie();
this.modeltabeli.addRow(dane);
}
if(e.getActionCommand().equals("wczytaj xml"))
{
try
{
DocumentBuilderFactory fabr=DocumentBuilderFactory.newInstance();
DocumentBuilder parser=fabr.newDocumentBuilder();
Document dokument=parser.parse("C:\\plik.xml");
Element root=(Element)dokument.getDocumentElement();
NodeList D=root.getElementsByTagName("D");
for(int i=0; i<D.getLength(); i++)
{
String rodzaj=((Element)D.item(i)).getAttribute("rodzaj");
String oznaczenie=((Element)D.item(i)).getAttribute("oznaczenie");
Object[] k = new Object[2];
Drukarka w = new Drukarka(rodzaj,oznaczenie);
k[0]=w.getRodzaj();
k[1]=w.getOznaczenie();
this.modeltabeli.addRow(k);
}
}
catch(Exception ex)
{}
}
if(e.getActionCommand().equals("zapisz xml")){
try
{
DocumentBuilderFactory fabr=DocumentBuilderFactory.newInstance();
DocumentBuilder parser=fabr.newDocumentBuilder();
Document dokument=parser.newDocument();
Element root=dokument.createElement("Drukarka");
dokument.appendChild(root);
for(Drukarka p: kolekcja){
Element z=dokument.createElement("p");
z.setAttribute("rodzaj", p.getRodzaj());
z.setAttribute("oznaczenie", p.getOznaczenie());
root.appendChild(z);
}
Transformer przekszt=TransformerFactory.newInstance().newTransformer();
Source zrodlo=new DOMSource(dokument);
Result wyjscie = new StreamResult("C:\\FPC\\dddd.xml");
przekszt.transform(zrodlo,wyjscie);
}
catch(Exception ex)
{}
}
if(e.getActionCommand().equals("zapisz relacyjnie")){
Connection polaczenie;
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
polaczenie=DriverManager.getConnection("jdbc:mysql://localhost/drukarka","root", "");
Statement instrukcja=polaczenie.createStatement();
instrukcja.executeUpdate("DELETE FROM d");
for(Drukarka p: kolekcja){
{
String sql="INSERT INTO d SET ";
sql+="rodzaj='"+ p.getRodzaj()+ "', ";
sql+="oznaczenie='"+ p.getOznaczenie()+ "' ";
System.out.println(sql);
instrukcja.executeUpdate(sql);
}
polaczenie.close();
}}
catch( InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException q)
{
q.printStackTrace();
}
** if(e.getActionCommand().equals("odczyt hibernate"))
{
SessionFactory fabrykaSesji = new
Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
Session sesja = fabrykaSesji.openSession();
Query zapytanie=sesja.createQuery("from Drukarka");
ArrayList<Drukarka> kolekcja = (ArrayList<Drukarka>)zapytanie.list();
for(Drukarka k: kolekcja)
{
Object[] dane = new Object[2];
dane[0]= k.getRodzaj();
dane[1]= k.getOznaczenie();
this.modeltabeli.addRow(dane);
}
sesja.close();**
}}}}
class Drukarka implements Serializable{
public Drukarka(){
}
public String getRodzaj() {
return rodzaj;
}
public void setRodzaj(String rodzaj) {
this.rodzaj = rodzaj;
}
public String getOznaczenie() {
return oznaczenie;
}
public void setOznaczenie(String oznaczenie) {
this.oznaczenie = oznaczenie;
}
public Drukarka(String rodzaj, String oznaczenie) {
this.rodzaj = rodzaj;
this.oznaczenie = oznaczenie;
}
private String rodzaj;
private String oznaczenie;
}