Ποια είναι η διαφορά μεταξύ JPA και JDBC;


Απάντηση 1:

Το JDBC είναι ένα τυπικό εργαλείο για τη σύνδεση με μια βάση δεδομένων απευθείας και εκτελείται SQL εναντίον του, για παράδειγμα, επιλέξτε * από TableName κ.λπ. Τα δεδομένα μπορούν να επιστραφούν τα οποία ο χρήστης μπορεί να χειριστεί στην εφαρμογή του και μπορεί να κάνει όλα τα συνηθισμένα πράγματα όπως ενημέρωση, διαγραφή , εισαγωγή διαδικασιών, κλπ. Είναι μία από τις βασικές τεχνολογίες πίσω από τα περισσότερα Java DBA (συμπεριλαμβανομένων των παρόχων JPA).

Ένα σημαντικό ζήτημα με τις παραδοσιακές εφαρμογές JDBC είναι ότι ο χρήστης μπορεί συχνά να έχει κάποιο μπερδεμένο κώδικα όπου η λογική αναμειγνύεται με την SQL, πολλές αντιστοίχιση μεταξύ συνόλων δεδομένων και αντικειμένων, κλπ.

Το JPA είναι ένα επίσημο εργαλείο για την Αντικειμενική Σχεσιακή Χαρτογράφηση. Το JPA είναι μια τεχνολογία που επιτρέπει στο χρήστη να αντιστοιχεί σε αντικείμενα σε πίνακες κώδικα και βάσης δεδομένων. Η JPA μπορεί να "κρύψει" την SQL από τον προγραμματιστή έτσι ώστε όλοι να ασχολούνται με τις τάξεις Java και ο πάροχος σάς επιτρέπει να τα αποθηκεύσετε και να τα φορτώσετε εξ αποστάσεως. Συνήθως, τα αρχεία χαρτογράφησης XML ή οι σχολιασμοί στους setters και getters μπορούν να χρησιμοποιηθούν για να ενημερώσουν τον πάροχο της ΚΣΙΕ. τα πεδία στον χάρτη αντικειμένων του χρήστη στα οποία πεδία στο DB. η αδρανοποίηση είναι ο πιο δημοφιλής πάροχος της JPA.

μερικά άλλα παραδείγματα, όπως το OpenJPA, toplink κ.λπ.

Η αδρανοποίηση και άλλοι δημοφιλείς πάροχοι για το JPA γράφουν SQL και χρησιμοποιούν το JDBC για να διαβάζουν και να γράφουν από και προς το DB.

Σας ευχαριστώ.

αν σας αρέσει η απάντησή μου, στη συνέχεια να την ενημερώσετε.


Απάντηση 2:

Θα ήταν ελάχιστα περίπλοκο να κατανοήσουμε τη διαφορά μεταξύ των δύο εάν είμαι αρχάριος. Νομίζω ότι u πρέπει να ξεκινήσει από την κατανόηση της διαφοράς μεταξύ JDBC και Hibernate πρώτα. Ελπίζω u ξέρει τι JDBC είναι, ακόμα ως περιγραφή breif: JDBC σημαίνει Java Συνδεσιμότητα Βάσεων Δεδομένων. Το JDBC είναι ένα API Java για τη σύνδεση και εκτέλεση του ερωτήματος με το db. Παρέχει στους οδηγούς τη σύνδεση με το db. Μπορείτε να χρησιμοποιήσετε το JDBC API για να αποκτήσετε πρόσβαση σε πίνακες δεδομένων που είναι αποθηκευμένα σε οποιαδήποτε σχεσιακή βάση δεδομένων. Με τη βοήθεια του JDBC API, μπορούμε να αποθηκεύσουμε, να ενημερώσουμε, να διαγράψουμε και να φέρουμε δεδομένα από τη βάση δεδομένων.

Τώρα τι είναι η κατάσταση Hibernate; Είναι ένα πλαίσιο σε αντίθεση με το JDBC, u hav να εισαγάγει τις βιβλιοθήκες Hibernate πριν το χρησιμοποιήσετε, ενώ το JDBC αποτελεί μέρος του ίδιου του J2SE. Η αδρανοποίηση κάνει το ίδιο πράγμα για το JDBC, αλλά μπορεί να πει ότι το Hibernate είναι ένα επίπεδο προόδου του JDBC. Η αδρανοποίηση απλοποιεί την ανάπτυξη της εφαρμογής Java για να αλληλεπιδράσει με τη βάση δεδομένων. Είναι ένα εργαλείο ORM, σημαίνει ότι χαρτογραφεί τα αντικείμενα java με τους πίνακες db. Μια κλάση java μπορεί να αντιπροσωπεύει έναν πίνακα σε db. Για παράδειγμα, εάν χαρτογραφήσατε τον πίνακα "emp_26" ως κλάση Employee στο Hibernate, τότε θα γράψετε ένα απλό ερώτημα αντικειμενοστρεφών για να προσελκύσετε όλους τους υπαλλήλους από τον πίνακα empl_26: "from Employee" // in Hibernate "select * from emp_26" // in JDBC.

Υπάρχουν πολλά χαρακτηριστικά γνωρίσματα που παρέχει η Hibernate όπως η κρυφή μνήμη, η συσχέτιση-χαρτογράφηση, η χαρτογράφηση κληρονομιών, η HQL, η τοποθέτηση σε πολλά άλλα που δεν είναι διαθέσιμα στο JDBC.

Ερχόμενοι στην JPA, είναι μια προδιαγραφή, είναι ένα σύνολο κατηγοριών και διεπαφών. Η ΚΣΙΕ χρειάζεται ένα εργαλείο για την υλοποίησή της και το εργαλείο αυτό μπορεί να είναι αδρανοποίησης. Με την εφαρμογή της JPA, μπορείτε να κάνετε το ίδιο με αυτό που κάνει η Hibernate, αλλά με τη μορφή της JPA. Αν η JPA είναι χορός, τότε απαιτείται Hibernate ή κάποιο άλλο εργαλείο για να προσφέρει ένα χορευτικό στάδιο. Με τον τρόπο αυτό δεν σημαίνει ότι η Hibernate δεν μπορεί να χορέψει χωρίς JPA, η Hibernate έχει επίσης το δικό της χορό.


Απάντηση 3:

Το JDBC είναι ένα πρότυπο για τη σύνδεση με ένα DB απευθείας και εκτελείται SQL εναντίον του - π.χ. SELECT * ΑΠΟ ΧΡΗΣΤΕΣ κ.λπ. Τα σύνολα δεδομένων μπορούν να επιστραφούν τα οποία μπορείτε να χειριστείτε στην εφαρμογή σας και μπορείτε να κάνετε όλα τα συνηθισμένα πράγματα όπως INSERT, DELETE, τις αποθηκευμένες διαδικασίες, κλπ. Είναι μια από τις βασικές τεχνολογίες πίσω από την πρόσβαση στις βάσεις δεδομένων Java (συμπεριλαμβανομένων των παρόχων JPA).

Ένα από τα ζητήματα με τις παραδοσιακές εφαρμογές JDBC είναι ότι μπορείτε συχνά να έχετε κάποιο crappy κώδικα όπου εμφανίζονται πολλά χαρτογράφηση μεταξύ συνόλων δεδομένων και αντικειμένων, η λογική αναμιγνύεται με SQL κ.λπ.

Το JPA είναι ένα πρότυπο για την Αντικειμενική Χαρτογράφηση Αντικειμένων. Αυτή είναι μια τεχνολογία που σας επιτρέπει να αντιστοιχίζετε μεταξύ αντικειμένων σε πίνακες κώδικα και βάσης δεδομένων. Αυτό μπορεί να "κρύψει" το SQL από τον προγραμματιστή, έτσι ώστε όλα αυτά να ασχολούνται με τάξεις Java και ο πάροχος σάς επιτρέπει να τα αποθηκεύσετε και να τα φορτώσετε μαγικά. Συνήθως, τα αρχεία χαρτογράφησης XML ή οι σχολιασμοί στους getters και τους setters μπορούν να χρησιμοποιηθούν για να ενημερώσουν τον πάροχο της JPA ποια πεδία στον χάρτη αντικειμένων σας στα οποία πεδία του DB. Ο πιο διάσημος πάροχος της JPA είναι η Hibernate, οπότε είναι ένα καλό μέρος για να ξεκινήσετε συγκεκριμένα παραδείγματα.

Άλλα παραδείγματα περιλαμβάνουν το OpenJPA, toplink κ.λπ.