odczyt przy uzyciu hibernate

0

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;
}

0

znalazlem blad w klamrach, teraz przy odczycie wyswietla sie blad

lis 17, 2017 11:01:43 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
lis 17, 2017 11:01:43 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.1.Final}
lis 17, 2017 11:01:43 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
lis 17, 2017 11:01:43 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
lis 17, 2017 11:01:43 AM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: hibernate.cfg.xml
lis 17, 2017 11:01:43 AM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: hibernate.cfg.xml
Exception in thread "AWT-EventQueue-0" org.hibernate.HibernateException: hibernate.cfg.xml not found
	at org.hibernate.internal.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:173)
	at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:2093)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:2074)
	at javaapplication59.GUI.actionPerformed(GUI.java:236)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6516)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6281)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4872)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4698)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4698)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
	at java.awt.EventQueue.access$300(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:706)
	at java.awt.EventQueue$3.run(EventQueue.java:704)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:720)
	at java.awt.EventQueue$4.run(EventQueue.java:718)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
0

Przecież masz jak byk napisane, "hibernate.cfg.xml not found".
Nie pamiętam czy to jest dobra praktyka, dawno z hibernate-a nie korzystałem, ale tutoriale z sieci podają przykładowo taką ścieżkę : /src/main/resources/hibernate.cfg.xml.

0

wkleilem pelna sciezke do pliku hibernate za Configuration().configure( ... ale to nic nie dalo

0

Nie wiem czy jak wkleiłeś bezwzględną ścieżkę (zależy jeszcze jaką) to czy powinno działać czy nie, być może hibernate ma swoje wymagania, tutaj musiały by się wypowiedzieć osoby, które pracuję z tym orm-em na co dzień.
Spróbuj zmapować ścieżkę w swoim projekcie poprzez dodanie pakietów, którą podałem Ci w komentarzu wyżej, wrzuć tam plik z konfiguracją hibernata, przebuduj projekt i zobacz jakie będą efekty.

0

odswiezam, pomoze ktos? pilne

0

Ale tu sie nie da pomóc. Ten kod to jest dramat i ja się w ogóle dziwie że się to kompiluje.
Anyway, jeśli budujesz to jakimś mavenem to wystarczyłoby wrzucic ten plik w /src/main/resources i by się znalazł.

1 użytkowników online, w tym zalogowanych: 0, gości: 1