![]() |
Pomoc oko java hibernatea...
Pozdrav, trebao bih pomoć oko sljedeceg "problema".
zamolio bih nekoga da mi preko hibernatea i mappinga u javi pokaze kako da napravim select querry na bazi... napravio sam update na bazu, al za select nikako da nadjem nesto na netu sta funkcionira i da primjenim na svome primjeru. Stavit cu najkrace klase da ne spamam. KLASA Posao public class Posao { private int sifra; private String opis; public int getSifra(){ return sifra; } public void setSifra(int sifra){ this.sifra=sifra; } public String getOpis(){ return opis; } public void setOpis(String opis){ this.opis=opis; } } mapping za nju Posao.hbm.xml "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> i evo napokon unosa u bazu import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public class UnosPosla { public void unosPosla(){ try { //hibernate konfiguracija Configuration cfg = new Configuration(); SessionFactory factory = cfg.configure().buildSessionFactory(); Session session = factory.openSession(); //unos podataka posao String sifra = Citac.getInput("Unesite sifru posla: "); String opis = Citac.getInput("Unesite opis posla: "); Posao p = new Posao(); p.setSifra(Integer.parseInt(sifra)); p.setOpis(opis); Transaction tx = session.beginTransaction(); session.saveOrUpdate(p); tx.commit(); System.out.println("Podaci uspjesno unešeni\n" +"SIFRA POSLA: "+sifra+"\nOPIS: "+opis); session.close(); } catch (Exception e){ System.out.println("greska: "+e); } } } Znaci to sve radi. citac je zasebna klasa naravno, nije potrebna tu... e sad mene zanima kako na isti takav nacin napraviti querry da se ispisu ta dva stupca iz baze... ja sam to ovako napravio kako cu staviti dolje..a treba mi kako to napraviti putem hibernatea import java.sql.*; public class IspisPoslova { public void ispisPoslova(){ Connection con = null; PreparedStatement pst = null; ResultSet rs = null; String url = "jdbc:mysql://localhost:3306/carnet"; String user = "mane"; String password = "fpcfvp"; try { con = DriverManager.getConnection(url, user, password); //pst = con.prepareStatement("SELECT * FROM zaposlenik"); pst= con.prepareStatement("SELECT * FROM POSAO"); rs = pst.executeQuery(); System.out.println("SIFRA\t\tOPIS"); System.out.println("---------------------------------------------"); while (rs.next()){ //pokupi podatke iz tablice zaposlenik int sifra = rs.getInt("SIFRA"); String opis = rs.getString("OPIS"); System.out.println(sifra+"\t\t"+opis); } } catch( SQLException se ) { System.out.println ("SQLError: " + se.getMessage () + " code: " + se.getErrorCode()); } catch( Exception e ) { System.out.println(e.getMessage()); e.printStackTrace(); } finally{ try{ rs.close(); pst.close(); con.close(); } catch(Exception e){ e.printStackTrace(); }} }} evo zamolio bih nekoga da mi napravi na ovom jednostvanom primjeru putem hibernatea kako to izvest.. ukoliko nije problem. hvala puno |
googlanjem: java hibernate query example
prvi link ti daje primjer :rtfm: za tvoj slučaj bi to išlo ovako nekako: Code:
Query query = session.createQuery("from Posao"); |
hvala klint...nasao sam ja dosta takvih primjera... ali ja kada to stavim u klasu ovu di mi je unos u bazu...kao dolje dodam samo da ispise nakon unosa sadrzaj baze... dodam tako dio koda i to nikad nece da radi. evo dodao sam ovo sta si ti napisao i javlja za List
public class IspisPoslova{ public void ispisPoslova(){ try { //hibernate konfiguracija Configuration cfg = new Configuration(); SessionFactory factory = cfg.configure().buildSessionFactory(); Session session = factory.openSession(); Posao posao = new Posao(); Transaction tx = session.beginTransaction(); session.saveOrUpdate(posao); tx.commit(); Query query = session.createQuery("from Posao"); List |
za sve dobro slutiš :goood:
- koristi java.util.List - za ispis probaj: Code:
System.out.println("Lista: " + list.toString()); Code:
for (Posao p : list) to izbaci van: Code:
Posao posao = new Posao(); |
again puno ti hvala klint.... al to meni nikako nece da radi... izbaci mi za ovu klasu dolje... ovo:
Posao@72f53805 Posao@78f14616 Posao@28308c62 znaci klasa se pokrene i nema gresaka...al ne izlista nista osim smeca..u tablici ima podataka sigurno. i ovo sam probao: System.out.println("Lista: " + list.toString());ista stvar samo u nizu ispise smece... ne znam dal sam ja lud ili sta ^^ edit: evo napokon sam uspio sa nekog primjerica izvuc ispis... pa ga implementirati kod sebe... ovako izgleda, malo mi je nejasan taj iterator doduse kako je napravljen al ajde dobro je, mozda uspijem to nekako "citkije" preradit :D . Napravio sam na primjeru zaposlenika ne posla. Hvala ti puno na trudu public class IspisZaposlenika{ public void ispisZaposlenika(){ try { Configuration cfg = new Configuration(); SessionFactory factory = cfg.configure().buildSessionFactory(); Session session = factory.openSession(); List zaposlenici = session.find("from Zaposlenik"); System.out.println( zaposlenici.size() + " prijavljenih zaposlenika pronađeno" ); ----------------------------------------------------------- for ( Iterator iter = zaposlenici.iterator(); iter.hasNext(); ) { Zaposlenik zapo = (Zaposlenik) iter.next(); System.out.println(zapo.getMat_br()+"\t"+zapo.getIme()+ "\t\t"+zapo.getPrezime()); }---------------------------------------------------------------- session.close(); } catch (Exception e){ System.out.println("greska: "+e); } } } |
nije to smeće :lol2:
to ti je zato što se kod ispisa objekta (u ovom slučaju to je Posao) poziva metoda toString() a kako je ti vjerojatno nisi definirao u klasi Posao, onda ti se pozove toString metoda Object klase (to je klasa koju koju nasljeđuju sve klase u Javi) i ona ti vrati, to što ti vrati :) Znači u klasi Posao definiraj toString metodu koja će nadjačati toString metodu Object klase npr. ovako nešto: Code:
public class Posao { p.s. radi preglednosti, programski kod koji pišeš tu na forumu stavljaj u CODE dio. |
Sva vremena su GMT +2. Sada je 09:23. |
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger