PDA

View Full Version : [Java] Cos'è hibernate?


Abdujaparov
12-07-2008, 14:53
Salve a tutti, sto cercando di capire cos'è hibernate, pensavo di aver
capito qualcosa ma invece nulla.
A quanto so è un modo per effettuare query (insert, update, select)
verso un db andando semplicemente a modificare delle classi che
rappresentano le tabelle del nostro schema della base dati, ho capito
bene?
Ho scaricato dal sito www.hibernate.org il pacchetto core e stavo
leggendo la guida solo che non è che ci stia capendo molto.
Per utilizzare hibernate devo necessariamente avere un'applicazione
web ejb? Non posso utilizzare hibernate in un'applicazione stand-alone
per i fatti suoi?
Dove posso trovare qualche guida molto semplice per cominciare a
muovere i primi passi con hibernate e provare qualcosa?
Grazie a tutti, ciao ciao.

thehuge
12-07-2008, 17:00
A quanto so è un modo per effettuare query (insert, update, select)
verso un db andando semplicemente a modificare delle classi che
rappresentano le tabelle del nostro schema della base dati, ho capito
bene?


In maniera moooolto semplicistica diciamo che è più o meno quello che fa.
Più precisamente è un framework che fornisce un servizio di ORM (Object Relational Mapping) (http://it.wikipedia.org/wiki/Object-relational_mapping).
Per un chiarimento un po' più discorsivo ti rimando a wikipedia (http://it.wikipedia.org/wiki/Hibernate).


Per utilizzare hibernate devo necessariamente avere un'applicazione
web ejb? Non posso utilizzare hibernate in un'applicazione stand-alone
per i fatti suoi?


Non necessariamente web, ma sicuramente J2EE, in quanto per maneggiare i database hai bisogno di JDBC; in più Hibernate si basa sul concetto di Bean persistente


Dove posso trovare qualche guida molto semplice per cominciare a
muovere i primi passi con hibernate e provare qualcosa?
Grazie a tutti, ciao ciao.

Beh, direi che per i primissimi passi puoi seguire il tutorial (http://www.hibernate.org/hib_docs/v3/reference/en/html/tutorial.html) fornito nella documentazione (http://www.hibernate.org/hib_docs/v3/reference/en/html/) di Hibernate stesso (che ti invito a leggere e nella quale troverai altri esempi pratici).
Per averne altri ti basterà una ricerca su google (ce ne sono a decine).

Per quanto riguarda l'utilizzo in fase di produzione (quando avrai ben capito il funzionamento di base), ti consiglio di risparmiare i tempi necessari alla creazione dei file di mapping xml, utilizzando uno dei molti strumenti automatici che se ne occupano (Hibernate Annotations (http://www.hibernate.org/hib_docs/annotations/reference/en/html/), plugin per il tuo IDE, pre-compilatori, ...).

lovaz
12-07-2008, 17:08
jdbc c'è anche nella SE

thehuge
12-07-2008, 17:26
jdbc c'è anche nella SE

Hai ragione, scusa. :flower:
Ti basta J2SE 1.4 (se vuoi usare le annotations ti serve la 5.0)

Abdujaparov
19-07-2008, 11:31
Ciao, stavo leggendo Hibernate Annotations e mi sono ritrovato questa classe che consigliavano di implementare:

package hello;

import org.hibernate.*;
import org.hibernate.cfg.*;
import test.*;
import test.animals.Dog;

public class HibernateUtil {

private static final SessionFactory sessionFactory;

static {
try {

sessionFactory = new AnnotationConfiguration()
configure().buildSessionFactory();
} catch (Throwable ex) {
// Log exception!
throw new ExceptionInInitializerError(ex);
}
}

public static Session getSession()
throws HibernateException {
return sessionFactory.openSession();
}
}


Solo che c'è un problema non trovo da nessuna parte la classe SessionFactory, ho importato in eclipse tutti i jar di hibernate 3.2.6, di hibernate annotations 3.3.1, tutti i jar di hibernate validator e search ma non cambia nulla, la classe non viene trovata da nessuna parte, com'è possibile?
Grazie, ciao ciao.

shinya
19-07-2008, 12:00
Non vorrei distruggere le tue speranze, ma forse un ORM (hibernate poi) non è la soluzione più semplice ai tuoi problemi.

Se ne è discusso recentemente su reddit, ed è venuto fuori un thread interessante.

http://www.reddit.com/info/6sbua/comments/

Se vuoi un framework di database mapping che non ti metta troppo i bastoni fra le ruote, ti consiglio di dare un'occhiata a iBATIS.

ndakota
19-07-2008, 12:21
chiesi la stessa cosa ad un amico che odia Java e mi disse: "hibernate è per chi non sa fare le query" :D

Abdujaparov
19-07-2008, 12:57
Ciao, purtroppo non scelgo io cosa usare mi devo adeguare e quindi mi serve hibernate :)
Grazie, ciao ciao.

thehuge
19-07-2008, 14:47
[...] non trovo da nessuna parte la classe SessionFactory, ho importato in eclipse tutti i jar di hibernate 3.2.6, di hibernate annotations 3.3.1, tutti i jar di hibernate validator e search ma non cambia nulla, la classe non viene trovata da nessuna parte, com'è possibile?

Prova a riscaricare tutto, perchè la cosa è molto strana: la classe org.hibernate.SessionFactory si trova nel file hibernate3.jar, ovvero nel jar principale con cui è distribuito il core di hibernate.

gugoXX
19-07-2008, 15:19
Ciao, purtroppo non scelgo io cosa usare mi devo adeguare e quindi mi serve hibernate :)
Grazie, ciao ciao.

Il purtroppo e' perche non scegli tu.
hibernate e altre soluzioni simili non sono per forza un danno.

Abdujaparov
20-07-2008, 16:12
Ciao nella mia directory lib di hibernate 3.2.6 non c'è nessun file hibernate3.jar :( ora riscarico tutto e vediamo.
Per quanto riguarda il purtroppo era riferito al fatto che non scelgo io, non a hibernate o altro :).
Grazie, ciao ciao.