Sto tentando di svliluppare un piccolo programma che deve leggere e scrivere dati da un database visualizzando tabelle, maschre di modifica dei dati ecc.

Io l'avrei fatto scrivendo direttamente il codice sql...ma mi rendo conto che la cosa e' un po grezza.
Mi sono un po informato (e' tre giorni che leggo articoli, con il risultato di esserne uscito abbastanza confuso) e ho scoperto che esiste Java Persistence API e Enterprise JavaBeans 3.0 che insieme (se ho capito bene) dovrebbero consentirmi di usare dei semplici POJO mappati sul db (usando annotazioni e non gli odiosi xml) per rappresentare le entità del db come oggetti collegati tra loro.

Ho letto un po di guide/articoli e tutti la fanno molto semplice...creano il POJO, inseriscono le annotazioni e...e qui nn ho piu capito:
- cos'e' e a cosa serve l'EntityManager ? e l'EntityManagerFactory ? Da dove li tiro fuori ? (le guide li usano direttamente, come se fossero sempre stati li)

Il primo pensiero e' che magari mi stavo facendo problemi su cose che gestiva direttamente il framework e che mi sarei ritrovato gia pronte, e quindi hoi provato:
-Ho installato Glassfish (il db mysql l'avevo gia da prima)
-Ho configurato eclipse in modo che riconosca il server GlassFish e possa avviarlo (funziona, una semplice pagina che nn fa nulla viene visualizzata correttamente)
-Ho agiunto nel DataSource Explorer il mio db

-Ho creato un nuovo progetto JPA Project (e' quello adatto?)
-creato la classe POJO con realtive annotazioni
-creato una nuova classe:
codice:
public static void main(String[] args) {
		
		EntityManagerFactory emf = Persistence.createEntityManagerFactory("JPAtest");
		
        EntityManager em = emf.createEntityManager();
		System.out.println("Start");
		Articolo articolo = em.find(Articolo.class, "0011381001845");
		System.out.println(articolo.getNome()); 
		
	}
(le prime due righe ho provato a copiarle da una delle tante guide che ho visto in giro, ma nn ho la piu pallida idea di cosa significhino, "JPAtest" e' lo stesso riportato in persistence.xml (il nome del contesto??))

Se provo ad avviare il programma :
Unable to acquire a connection from driver [null], user [null] and URL [null].
...in effetti non gli ho detto da nessuna parte come connettersi al db e del resto...non ho idea di dove dovrei dirglielo...

rimanendo il probmema che nn credo si possa immaginare da solo a che db connettrsi:
codice:
 
       @PersistenceContext
       static EntityManager em;

	public static void main(String[] args) {

		System.out.println("Start");
		Articolo articolo = em.find(Articolo.class, "0011381001845");
		System.out.println(articolo.getNome()); 
		
	}
Puo aver senso ? dovrebbe recuperare lui in automatico l'EntityManager ?

ps. Ho capito che JPA e' solo un modello e che ha bisogno poi di un implementazione.
Pensavo di usare Toplink Essential, che mi sembrava piu semplice rispetto a Hibernate (pur non avendo capito molto di nessuno dei due), ma sono aperto a suggeriemnti.
Una volta deciso pero quale dei due usare...non ho la piu pallida idea di come si usino...

bhe, penso si sia capito ormai il mio livello di ignoranza su questi argomenti.

Qualcuno portebbe suggerirmi una buona guida che spieghi le cose dall'inizio alla fine?