Ktos napisał(a)
Krolik: Nieścisłość - mocna rzecz w stosunku do tego, co było w PHP do tej pory ;)
;) To prawda.
Robi sie maly offtop, ale parę zdań o Hibernate.
Wyobraź sobie, że dane w bazie widać nie jako rekordy i tabele, ale jako obiekty i klasy. Wtedy jak chcesz coś zapisać w bazie piszesz:
Session session = HibenateUtil.getCurrentSession(); // wyciagniecie sesji hibernate
MojaKlasa obiekt = new MojaKlasa(); // stworzenie obiektu
obiekt.setCostam1("blabla"); // ustawienie pol w obiekcie
obiekt.setCostam2("blabla2");
obiekt.setCostamInteger(12345);
session.save(obiekt); // zapis obiektu w bazie
Wydobycie obiektu z bazy w podobny sposob:
Query q = session.createQuery("from MojaKlasa where id = 1200"); // stworzenie zapytania w HQL
MojaKlasa obiekt = q.uniqueResult(); // wydobycie obiektu
System.out.println(obiekt.getCostam1()); // wypisanie pól
System.out.println(obiekt.getCostam2());
System.out.println(obiekt.getCostamInteger());
Oczywiscie na poziomie pojedynczych obiektow, duzej roznicy nie ma, ale Hibernate swietnie obsluguje rowniez relacje miedzy obiektami - kompozycje, kolekcje, dziedziczenie. Nie musisz uzywac joinow, zeby wydobyc kilka powiazanych obiektow. Mozesz tez okreslic, ktore
pola przeklasdaja sie na ktore kolumny w bazie. W HQL można też odwoływać się do obiektów za pomocą ".", taj jak w Javie czy PHP. Tzn. można napisać: WHERE pracownik.szef.telefon = 12345678, co oznacza "gdzie telefon szefa danego pracownika = 12345678". Nie trzeba robic joinow, hibernate sam stworzy odpowiednie zapytanie SQL.
Wiecej na www.hibernate.org.