Newsgroup: it.comp.java
Titolo: Cos'è hibernate?

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.

 muovere i primi passi con hibernate e provare qualcosa?
Non ho mai usato hibernate per nessun progetto in Java, ma per tenermi 
"aggiornato" mi sono letto alcune cose su Hibernate. Ad esempio questo 
potrebbe essere un buon inizio per capire che cosa sia (se te la cavi con 
l'inglese):
http://www.visualbuilder.com/java/hibernate/tutorial/
Tommy

Hibernate è un framework che risolve molto bene un problema detto ORM:
Object Relational Mapping. In parole povere permette ad uno
sviluppatore che programma con il paradigma Object-Oriented di parlare
con il mondo relazionale (e quindi con il paradigma dei database
relazionali), continuando ad utilizzare il paradigma object-oriented.
In pratica, ridotto in sintesi estrema:
- ad una creazione di una nuova istanza di una classe (costruttore
new, tramite factory,...) il framework si preoccupa di tradurre
l'operazione in una INSERT SQL;
- all'invocazione di un metodo setNNN dell'istanza di una classe, che
imposta il valore di una delle sue variabili d'istanza, il framework
il framework si preoccupa di tradurre l'operazione in una UPDATE SQL;
- a svariati metodi load(....) di recupero dati il framework si
preoccupa di tradurre l'operazione in una o più SELECT SQL;
- ... e così via.
Il tutto avviene costruendo classi che non implementano alcuna
interfaccia particolare o che non estendono alcuna classe particolare
(astratta o concreta): puoi costruire oggetti che modellano il dominio
del tuo problema in assoluta libertà. Questi oggetti sno detti POJO:
non è la sigla di un nuovo standard da imparare, ma semmai la sigla di
un concetto rassicurante: "Plain Old Java Object", che liberamente
tradotto potrebbe anche stare per "I cari vecchi oggetti Java".
La corrispondenza tra i due mondi (relazione e orientato agli oggetti)
avviene con due tecniche: tramite l'uso di file xml, che contengono le
informazioni e le regole per far corrispondere classi a tabelle e a
relazioni tra tabelle, oppure con annotazioni, scritte nel codice
delle classi, che svolgono la stessa funzione dei file. La scelta
dell'una o dell'altra tecnica dipende da te. Puoi trovare ampie
delucidazioni sulla documentazione ufficiale (la guida di riferimento,
che trovi nel pacchetto core, in pdf o in html, è veramente ampia,
esaustiva per la maggior parte dei problemi che uno sviluppatore può
incontrare, e ben fatta.
In alcuni casi Hibernate ti permette di scrivere un'applicazione Java
(standalone o web, è lo stesso), senza scrivere codice SQL (persino
quello relativo alla generazione del database).
E' ovvio però che per ottenere di più, la conoscenza di entrambi i
mondi (relazionale e orientato agli oggetti) è fondamentale.
Un altro fondamentale problema risolto dal framework Hibernate è la
portabilità dell'applicazione da un database relazionale ad un altro:
un'applicazione scritta per funzionare con Oracle, funziona
altrettanto bene con HSQLDB, Postgres, MySQL, MS SQL Server, ecc....
Considera inoltre che l'arrivo di Hibernate ha smosso parecchio le
acque nel mondo Java, al punto da indurre un processo di
standardizzazione dell'interazione di Java con i database relazionali,
che ha portato a sua volta alla nascita di JPA (Java Persistence API),
lo standard Java per la mappatura relazionale-oggetti (ORM). A questo
proposito è interessante leggere la prefazione al testo Java
Persistence with Hibernate, scritta da Linda DeMichiel, di SUN
Microsystems, che guida il gruppo di esperti incaricato di redigere e
mantenere lo standard JPA.
Concludendo: prenditi la guida di riferimento presente nel pacchetto
Core, e inizia dal capitolo 1: è un tutorial facile facile che ti
permette di sporcarti subito le mani con i concetti base del
framework. Il pacchetto core contiene anche i sorgenti del codice che
trovi, ma ti consiglio comunque di rifarti gli esempi e di
modificarteli per esplorare meglio il tutto.
Ciao
Daniele