JPA o JDBC, come sono differenti?

Sto imparando Java EE e ho scaricato l’eclipse con glassfish per lo stesso. Ho visto alcuni esempi e ho anche letto i documenti Oracle per sapere tutto su Java EE 5. La connessione a un database era molto semplice. Ho aperto un progetto web dinamico, creato un bean di sessione, ho usato EntityManager e con i metodi get ho potuto accedere alla tabella dei dati memorizzati.

Per il mio prossimo progetto ho creato una class semplice e poi ho accesso ad alcune tabelle DB. Il primo problema che ho riscontrato era che l’attributo PersistenceUnit sarebbe stato riconosciuto solo da EJB, Servlet ecc. E non da una semplice class java. Quindi non potrei usare il modo EntityManager (o posso?)

Mi è stato chiesto di passare per il modo “JDBC”. Il primo problema che ho riscontrato è stato ottenere la connessione al DB. Sembra che tutto questo debba essere scritto a mano. Ho avuto un persistence.xml con il quale ho potuto facilmente configurare la connessione del database. Anche impostare un driver per il DB è stato facile. Inoltre non ci sono metodi get / set nel JDBC per accedere alle quadro della tabella.

Come faccio a capire JPA e persistenza in relazione a JDBC? Per cosa si pensava l’JPA? Perché ci sono metodi set / get? Qualcuno può far luce sull’essenza di questi due e quali sono i pro / contro senza “gerghi” ?? Si prega di suggerire anche alcuni collegamenti. Una semplice ricerca su google per differenze JPA e JDBC mi ha portato ad alcuni siti pieni di “terminologia” che non potevo seguire 🙁