Qual è la differenza tra JPA e JDBC?


Risposta 1:

JDBC è uno strumento standard per connettersi direttamente a un database ed eseguire SQL contro di esso, ad esempio selezionare * da TableName, ecc. È possibile restituire set di dati che l'utente può gestire nella sua app e può fare tutte le solite cose come aggiornare, eliminare , inserire procedure, ecc. È una delle tecnologie sottostanti alla maggior parte dei DBA Java (inclusi i provider JPA).

Uno dei problemi principali con le app JDBC tradizionali è che l'utente può spesso avere del codice scadente in cui la logica viene mescolata con SQL, si verificano molti mapping tra set di dati e oggetti, ecc.

JPA è uno strumento ufficiale per la mappatura relazionale degli oggetti. JPA è una tecnologia che consente all'utente di mappare tra oggetti nelle tabelle del codice e del database. JPA può "nascondere" l'SQL allo sviluppatore in modo tale da gestire tutto all'interno delle classi Java e il provider consente di salvarli e caricarli in remoto. Principalmente, i file di mappatura XML o le annotazioni su setter e getter possono essere utilizzati per comunicare al provider JPA. quali campi sull'oggetto utente mappano a quali campi nel DB. hibernate è il provider JPA più popolare.

alcuni altri esempi tra cui OpenJPA, toplink, ecc.

Hibernate e altri provider popolari per JPA scrivono SQL e usano JDBC per leggere e scrivere da e verso il DB.

Grazie.

se ti piace la mia risposta, allora votala.


Risposta 2:

Sarebbe leggermente complesso capire la differenza tra entrambi se sei un principiante. Penso che dovresti iniziare capendo prima la differenza tra JDBC e Hibernate. Spero che tu sappia cos'è JDBC, sempre come una descrizione breve: JDBC sta per Java Database Connectivity. JDBC è un'API Java per connettersi ed esegue la query con il db. Fornisce i driver per connettersi con il db. È possibile utilizzare l'API JDBC per accedere ai dati tabulari archiviati in qualsiasi database relazionale. Con l'aiuto dell'API JDBC, possiamo salvare, aggiornare, eliminare e recuperare i dati dal database.

Ora cos'è Hibernate? È un framework diverso da JDBC, devi importare le librerie Hibernate prima di usarlo, mentre JDBC fa parte di J2SE stesso. Hibernate fa la stessa cosa per cui è stato sviluppato JDBC, ma puoi dire che Hibernate è un livello avanzato di JDBC. Hibernate semplifica lo sviluppo dell'applicazione Java per interagire con il database. È uno strumento ORM, significa che mappa gli oggetti Java con le tabelle db. Una classe java può rappresentare una tabella in db. Ad esempio, se hai mappato la tabella "emp_26" come classe Employee in Hibernate, dovresti scrivere una semplice query orientata agli oggetti per recuperare tutti i dipendenti dalla tabella empl_26: "from Employee" // in Hibernate "select * from emp_26" // in JDBC.

Ci sono moltissime funzionalità che Hibernate fornisce come cache, associazione-associazione, ereditarietà-mapping, HQL, impaginazione e molte altre che non sono disponibili in JDBC.

Venendo a JPA, è una specifica, è un insieme di classi e interfacce. L'APP ha bisogno di uno strumento per averlo implementato e tale strumento può essere ibernato. Implementando JPA, puoi fare lo stesso di quello che fa Hibernate, ma nel formato di JPA. Se JPA è una danza, allora Hibernate o qualche altro strumento è necessario per fornirle una fase di ballo. A proposito, questo non significa che Hibernate non possa ballare senza JPA, anche Hibernate ha la sua danza.


Risposta 3:

JDBC è uno standard per la connessione diretta a un DB e l'esecuzione di SQL su di esso, ad esempio SELEZIONA * DA UTENTI, ecc. È possibile restituire set di dati che è possibile gestire nella propria app e si possono fare tutte le solite cose come INSERT, DELETE, eseguire stored procedure, ecc. È una delle tecnologie sottostanti alla maggior parte dell'accesso al database Java (inclusi i provider JPA).

Uno dei problemi con le app JDBC tradizionali è che spesso puoi avere un po 'di codice scadente in cui si verificano un sacco di mapping tra set di dati e oggetti, la logica è mescolata con SQL, ecc.

JPA è uno standard per la mappatura relazionale degli oggetti. Questa è una tecnologia che consente di mappare tra oggetti in tabelle di codice e database. Questo può "nascondere" l'SQL allo sviluppatore in modo che tutto ciò che trattano siano classi Java e il provider ti consenta di salvarli e caricarli magicamente. Principalmente, i file di mappatura XML o le annotazioni su getter e setter possono essere utilizzati per indicare al provider JPA quali campi sulla mappa degli oggetti a quali campi nel DB. Il provider JPA più famoso è Hibernate, quindi è un buon punto di partenza per esempi concreti.

Altri esempi includono OpenJPA, toplink, ecc.