java jdbc connection tutorial with programming example
Αυτό το σεμινάριο σύνδεσης JDBC εξηγεί βασικά βήματα σε μια βάση δεδομένων με παραδείγματα και παρέχει συμβολοσειρές σύνδεσης JDBC για διαφορετικές βάσεις δεδομένων:
ποιο εργαλείο etl είναι καλύτερο στην αγορά
Στο προηγούμενο σεμινάριο του Εκμάθηση σειράς JDBC , μάθαμε στοιχεία, αρχιτεκτονική και τύπους προγραμμάτων οδήγησης στο Java Database Connectivity (JDBC).
Σε αυτό το σεμινάριο, θα συζητήσουμε τα βήματα σύνδεσης με βάσεις δεδομένων χρησιμοποιώντας το JDBC. Αυτό το σεμινάριο θα σας δείξει πώς να κάνετε σύνδεση JDBC και να εκτελείτε λειτουργίες βάσης δεδομένων. Το JDBC API λειτουργεί ως διεπαφή μεταξύ του προγράμματος Java και της βάσης δεδομένων.
Στο τέλος αυτού του σεμιναρίου, θα μπορείτε να γράψετε προγράμματα Java για σύνδεση με βάσεις δεδομένων και εκτέλεση λειτουργιών DB.
Τι θα μάθετε:
Βήματα σύνδεσης JDBC
Υπάρχουν 6 βασικά βήματα για να συνδεθείτε με το JDBC. Καταγράφονται στην παρακάτω εικόνα:
# 1) Εισαγωγή πακέτων
Πρώτον, πρέπει να εισαγάγουμε τα υπάρχοντα πακέτα για να το χρησιμοποιήσουμε στο πρόγραμμα Java. Η εισαγωγή θα διασφαλίσει ότι οι κλάσεις JDBC API είναι διαθέσιμες για το πρόγραμμα. Στη συνέχεια μπορούμε να χρησιμοποιήσουμε τις τάξεις και τις υποκατηγορίες των πακέτων.
Ανεξάρτητα από το πρόγραμμα οδήγησης JDBC, προσθέστε την ακόλουθη δήλωση εισαγωγής στο πρόγραμμα Java.
import java.sql.*;
Εισαγάγετε τις άλλες κατηγορίες με βάση τη λειτουργικότητα που θα χρησιμοποιήσετε στο πρόγραμμα. Κατεβάστε τα κατάλληλα αρχεία Jar για τη βάση δεδομένων που θα χρησιμοποιήσετε στο πρόγραμμα.
Αναφέρομαι στο προηγούμενο σεμινάριο για τους συνδέσμους για λήψη των αρχείων Jar για τη βάση δεδομένων σας.
Το JDBC API 4.0 παρέχει κυρίως 2 σημαντικά πακέτα:
- java.sql
- javax.sql
(i) πακέτο java.sql
Αυτό το πακέτο παρέχει τάξεις και διεπαφές για την εκτέλεση των περισσότερων από τις λειτουργίες JDBC όπως η δημιουργία και η εκτέλεση ερωτημάτων SQL.
Μαθήματα / Διεπαφές | Περιγραφή |
---|---|
Πρόγραμμα οδήγησης | Παρέχει βασική υπηρεσία για τη διαχείριση ενός συνόλου προγραμμάτων οδήγησης JDBC |
ΑΜΟΡΦΗ ΜΑΖΑ | Αντιπροσωπεύει την τιμή SQL Blob στο πρόγραμμα Java |
CallableStatement | Χρησιμοποιείται για την εκτέλεση αποθηκευμένων διαδικασιών SQL |
CLOB | Αντιπροσωπεύει την τιμή SQL Clob στο πρόγραμμα Java |
Σύνδεση | Δημιουργεί μια σύνδεση (συνεδρία) με μια συγκεκριμένη βάση δεδομένων |
Ημερομηνία | Παρέχει υποστήριξη για τύπο SQL Date |
Οδηγός | Δημιουργεί μια παρουσία προγράμματος οδήγησης με πρόγραμμα οδήγησης Driver |
ΠαράμετροςMetaData | Είναι ένα αντικείμενο που μπορεί να χρησιμοποιηθεί για τη λήψη πληροφοριών σχετικά με τους τύπους και τις ιδιότητες κάθε παραμέτρου σε ένα αντικείμενο PreparedStatement |
Προετοιμασμένη δήλωση | Χρησιμοποιείται για τη δημιουργία και την εκτέλεση ενός παραμετροποιημένου ερωτήματος στο πρόγραμμα Java |
Αποτέλεσμα | Χρησιμοποιείται για πρόσβαση στο αποτέλεσμα κάθε σειρά |
ResultSetMetaData | Χρησιμοποιείται για τη λήψη πληροφοριών σχετικά με τους τύπους και τις ιδιότητες των στηλών σε ένα αντικείμενο ResultSet |
RowId | Αντιπροσωπεύει την τιμή SQL ROWID |
Σώμα | Αντιπροσωπεύει το σημείο αποθήκευσης στη συναλλαγή |
SQLData | Χρησιμοποιείται για την αντιστοίχιση του SQL User Defined Type (UDT) σε μια κλάση στο πρόγραμμα Java |
SQLXML | Αντιπροσωπεύει τον τύπο SQL XML |
Δήλωση | Χρησιμοποιείται για την εκτέλεση μιας στατικής δήλωσης SQL |
Πρόγραμμα οδήγησηςPropertyInfo | Παρέχει ιδιότητες προγράμματος οδήγησης για σύνδεση |
SQLException | Παρέχει πληροφορίες για σφάλματα βάσης δεδομένων |
SQLTimeoutException | Είναι μια υποκατηγορία του SQLException που ρίχνεται όταν έχει λήξει το χρονικό όριο που καθορίζεται από τη δήλωση |
Προειδοποίηση SQL | Είναι μια εξαίρεση που παρέχει πληροφορίες σχετικά με τις προειδοποιήσεις πρόσβασης στη βάση δεδομένων |
Δομή | Είναι μια τυπική χαρτογράφηση σε πρόγραμμα Java για δομημένο τύπο SQL |
(ii) πακέτο javax.sql
Είναι ένα API επέκτασης JDBC και παρέχει πρόσβαση και επεξεργασία δεδομένων από διακομιστή στο πρόγραμμα Java.
Μαθήματα / Διεπαφές | Περιγραφή |
---|---|
ConnectionEvent | Παρέχει πληροφορίες σχετικά με την εμφάνιση συμβάντων που σχετίζονται με τη σύνδεση |
CommonDataSource | Είναι μια διεπαφή που καθορίζει τις μεθόδους που είναι κοινές μεταξύ DataSource, XADataSource και ConnectionPoolDataSource |
ConnectionPoolDataSource | Είναι εργοστάσιο για αντικείμενα PooledConnection |
Πηγή δεδομένων | Είναι ένα εργοστάσιο για συνδέσεις με το φυσικό DataSource που αντιπροσωπεύει το αντικείμενο |
PooledConnection | Χρησιμοποιείται για τη διαχείριση του Connection Pool |
RowSet | Παρέχει υποστήριξη στο JDBC API για Java Component Model |
RowSetMetadata | Έχει τις πληροφορίες σχετικά με τις στήλες σε ένα αντικείμενο RowSet |
ConnectionEventListener | Χρησιμοποιείται για την καταγραφή συμβάντων αντικειμένων PooledConnection |
RowSetEvent | Δημιουργεί όταν συμβαίνει ένα συμβάν σε ένα αντικείμενο Rowset |
StatementEvent | Αποστέλλεται σε όλα τα StatementEventListeners που έχουν εγγραφεί με ένα PooledConnection που δημιουργήθηκε |
# 2) Φόρτωση προγράμματος οδήγησης
Πρώτα, πρέπει να φορτώσουμε / καταχωρήσουμε το πρόγραμμα οδήγησης στο πρόγραμμα πριν συνδεθούμε στη βάση δεδομένων. Πρέπει να το καταχωρίσετε μόνο μία φορά ανά βάση δεδομένων στο πρόγραμμα.
Μπορούμε να φορτώσουμε το πρόγραμμα οδήγησης με τους ακόλουθους 2 τρόπους:
- Class.forName ()
- DriverManager.registerDriver ()
(i) Class.forName ()
Με αυτόν τον τρόπο, το αρχείο κλάσης του προγράμματος οδήγησης φορτώνεται στη μνήμη κατά το χρόνο εκτέλεσης. Φορτώνει σιωπηρά το πρόγραμμα οδήγησης. Κατά τη φόρτωση, το πρόγραμμα οδήγησης θα εγγραφεί αυτόματα στο JDBC.
Όνομα DB | Όνομα προγράμματος οδήγησης JDBC |
---|---|
Sybase | com.sybase.jdbcSybDriver |
MySQL | com.mysql.jdbc.Driver |
Μαντείο | oracle.jdbc.driver.OracleDriver |
Διακομιστής Microsoft SQL | com.microsoft.sqlserver.jdbc.SQLServerDriver |
Πρόσβαση MS | net.ucanaccess.jdbc.UcanaccessDriver |
PostgreSQL | org.postgresql.Driver |
IBM DB2 | com.ibm.db2.jdbc.net.DB2Driver |
TeraData | com.teradata.jdbc.TeraDriver |
Σημείωση: Η μέθοδος forName () ισχύει μόνο για εικονικές μηχανές συμβατές με JDK.
(ii) DriverManager.registerDriver ()
Το DriverManager είναι μια ενσωματωμένη κλάση που είναι διαθέσιμη στο πακέτο java.sql. Λειτουργεί ως μεσολαβητής μεταξύ της εφαρμογής Java και της βάσης δεδομένων που θέλετε να συνδέσετε. Πριν συνδεθείτε με τη βάση δεδομένων, πρέπει να καταχωρίσετε το πρόγραμμα οδήγησης στο DriverManager. Η κύρια λειτουργία του DriverManager είναι η φόρτωση της κλάσης προγράμματος οδήγησης της βάσης δεδομένων και η δημιουργία σύνδεσης με DB.
Δημόσιο στατικό άκυρο μητρώο Οδηγός (πρόγραμμα οδήγησης) - Αυτή η μέθοδος θα εγγράψει το πρόγραμμα οδήγησης στο Driver Manager. Εάν το πρόγραμμα οδήγησης έχει ήδη εγγραφεί, τότε δεν θα προβεί σε καμία ενέργεια.
- Θα ρίξει SQLException εάν προκύψει σφάλμα βάσης δεδομένων.
- Θα ρίξει NullPointerException εάν ο οδηγός είναι μηδενικός.
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()) DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver())
Με αυτόν τον τρόπο, μπορείτε να καταχωρίσετε το πρόγραμμα οδήγησης για τη βάση δεδομένων σας μεταβιβάζοντάς το ως παράμετρο.
# 3) Δημιουργία σύνδεσης
Μετά τη φόρτωση του προγράμματος οδήγησης, το επόμενο βήμα είναι να δημιουργήσετε και να δημιουργήσετε τη σύνδεση. Μόλις απαιτείται, τα πακέτα εισάγονται και τα προγράμματα οδήγησης φορτώνονται και καταχωρούνται, τότε μπορούμε να ξεκινήσουμε τη δημιουργία βάσης δεδομένων.
Η κλάση DriverManager έχει τη μέθοδο getConnection, θα χρησιμοποιήσουμε αυτήν τη μέθοδο για τη σύνδεση με τη βάση δεδομένων. Για να καλέσουμε τη μέθοδο getConnection (), πρέπει να περάσουμε 3 παραμέτρους. Οι 3 παράμετροι είναι URL τύπου δεδομένων συμβολοσειράς, όνομα χρήστη και κωδικός πρόσβασης για πρόσβαση στη βάση δεδομένων.
Η μέθοδος getConnection () είναι μια υπερφορτωμένη μέθοδος. Οι 2 μέθοδοι είναι:
- getConnection (διεύθυνση URL, όνομα χρήστη, κωδικός πρόσβασης); - Έχει 3 παραμέτρους URL, όνομα χρήστη, κωδικό πρόσβασης.
- getConnection (URL); - Έχει μόνο μία παράμετρο. Η διεύθυνση URL έχει επίσης όνομα χρήστη και κωδικό πρόσβασης.
Ο παρακάτω πίνακας παραθέτει τις συμβολοσειρές σύνδεσης JDBC για τις διάφορες βάσεις δεδομένων:
Βάση δεδομένων | Σύνδεση συμβολοσειράς / διεύθυνση URL DB |
---|---|
Sybase | jdbc: Sybase: Tds: HOSTNAME: PORT / DATABASE_NAME |
MySQL | jdbc: mysql: // HOST_NAME: PORT / DATABASE_NAME |
Μαντείο | jdbc: oracle: thin: @HOST_NAME: PORT: SERVICE_NAME |
Διακομιστής Microsoft SQL | jdbc: sqlserver: // HOST_NAME: PORT; Όνομα βάσης δεδομένων = |
Πρόσβαση MS | jdbc: ucanaccess: // DATABASE_PATH |
PostgreSQL | jdbc: postgresql: // HOST_NAME: PORT / DATABASE_NAME |
IBM DB2 | jdbc: db2: // HOSTNAME: PORT / DATABASE_NAME |
TeraData | jdbc: teradata: // HOSTNAME / βάση δεδομένων =, tmode = ANSI, charset = UTF8 |
Παράδειγμα:
Connection con = DriverManager.getConnection(jdbc:oracle:thin:@localhost:1521:xe,System,Pass123@)
Εδώ σε αυτό το παράδειγμα,
- λεπτός αναφέρεται στον τύπο προγράμματος οδήγησης.
- localhost είναι όπου εκτελείται η βάση δεδομένων της Oracle.
- 1521 είναι ο αριθμός θύρας για σύνδεση στο DB.
- όχημα - SID
- Σύστημα - Όνομα χρήστη για σύνδεση στη βάση δεδομένων της Oracle.
- Πέρασμα123 @ - Κωδικός πρόσβασης
# 4) Δημιουργία και εκτέλεση δήλωσης
Μόλις δημιουργηθεί η σύνδεση, μπορούμε να αλληλεπιδράσουμε με τη συνδεδεμένη βάση δεδομένων. Πρώτον, πρέπει να δημιουργήσουμε τη δήλωση για να εκτελέσουμε το ερώτημα SQL και μετά να εκτελέσουμε τη δήλωση.
(i) Δημιουργία δήλωσης
Τώρα θα δημιουργήσουμε το αντικείμενο δήλωσης που εκτελεί το ερώτημα με τη συνδεδεμένη βάση δεδομένων. Χρησιμοποιούμε τη μέθοδο createStatement του Σύνδεση τάξη για να δημιουργήσετε το ερώτημα.
Υπάρχουν 3 διασυνδέσεις δήλωσης που είναι διαθέσιμες στο πακέτο java.sql. Αυτά εξηγούνται παρακάτω:
μία δήλωση
Αυτή η διεπαφή χρησιμοποιείται για την εφαρμογή απλών δηλώσεων SQL χωρίς παράμετρο. Επιστρέφει το αντικείμενο ResultSet.
Statement statemnt1 = conn.createStatement();
β) Προετοιμασμένη δήλωση
Αυτή η διεπαφή PreparedStatement επεκτείνει τη διεπαφή Statement. Έτσι, έχει περισσότερες δυνατότητες από τη διεπαφή Statement. Χρησιμοποιείται για την εφαρμογή παραμετροποιημένων και προ-μεταγλωττισμένων δηλώσεων SQL. Η απόδοση της εφαρμογής αυξάνεται επειδή συγκεντρώνει το ερώτημα μόνο μία φορά.
Είναι εύκολο να επαναχρησιμοποιηθεί αυτή η διεπαφή με μια νέα παράμετρο. Υποστηρίζει την παράμετρο IN. Ακόμη και μπορούμε να χρησιμοποιήσουμε αυτήν τη δήλωση χωρίς καμία παράμετρο.
String select_query = “Select * from states where state_id = 1”; PreparedStatement prpstmt = conn.prepareStatement(select_query);
γ) CallableStatement
Η διεπαφή CallableStatement επεκτείνει τη διεπαφή PreparedStatement. Έτσι, έχει περισσότερες δυνατότητες από τη διεπαφή PreparedStatement. Χρησιμοποιείται για την εφαρμογή μιας παραμετροποιημένης δήλωσης SQL που επικαλείται διαδικασία ή λειτουργία στη βάση δεδομένων. Μια αποθηκευμένη διαδικασία λειτουργεί σαν μέθοδος ή λειτουργία σε μια τάξη. Υποστηρίζει τις παραμέτρους IN και OUT.
Η παρουσία CallableStatement δημιουργείται καλώντας τη μέθοδο προετοιμασίας κλήσης του αντικειμένου σύνδεσης.
CallableStatementcallStmt = con.prepareCall('{call procedures(?,?)}');
(ii) Εκτελέστε το ερώτημα
Υπάρχουν 4 σημαντικές μέθοδοι για την εκτέλεση του ερωτήματος στη διεπαφή Statement. Αυτά εξηγούνται παρακάτω:
- ResultSet executeQuery (String sql)
- int executeUpdate (String sql)
- boolean εκτελέστε (String sql)
- int () executeBatch ()
a) ResultSet executeQuery (String sql)
Η μέθοδος executeQuery () στη διεπαφή Statement χρησιμοποιείται για την εκτέλεση του ερωτήματος SQL και την ανάκτηση των τιμών από το DB. Επιστρέφει το αντικείμενο ResultSet. Κανονικά, θα χρησιμοποιήσουμε αυτήν τη μέθοδο για το ερώτημα SELECT.
sql συνεντεύξεις προγραμματιστή ερωτήσεις και απαντήσεις για έμπειρο pdf
b) executeUpdate (String sql)
Η μέθοδος executeUpdate () χρησιμοποιείται για την εκτέλεση ερωτημάτων καθορισμένης αξίας όπως INSERT, UPDATE, DELETE (DML statement) ή DDL statement που δεν επιστρέφουν τίποτα. Κυρίως, θα χρησιμοποιήσουμε αυτήν τη μέθοδο για εισαγωγή και ενημέρωση.
c) εκτέλεση (String sql)
Η μέθοδος execute () χρησιμοποιείται για την εκτέλεση του ερωτήματος SQL. Επιστρέφει αληθής εάν εκτελεί το ερώτημα SELECT. Και επιστρέφει ψευδής εάν εκτελεί ερώτημα INSERT ή UPDATE.
δ) executeBatch ()
Αυτή η μέθοδος χρησιμοποιείται για την εκτέλεση μιας δέσμης ερωτημάτων SQL στη βάση δεδομένων και εάν όλα τα ερωτήματα εκτελεστούν με επιτυχία, επιστρέφει μια σειρά μετρήσεων ενημερώσεων. Θα χρησιμοποιήσουμε αυτήν τη μέθοδο για να εισαγάγουμε / ενημερώσουμε το μεγαλύτερο μέρος των εγγραφών.
# 5) Ανάκτηση αποτελεσμάτων
Όταν εκτελούμε τα ερωτήματα χρησιμοποιώντας τη μέθοδο executeQuery (), το αποτέλεσμα θα αποθηκευτεί στο αντικείμενο ResultSet. Το αντικείμενο ResultSet που επιστρέφεται δεν θα είναι ποτέ μηδενικό ακόμη και αν δεν υπάρχει αντίστοιχη εγγραφή στον πίνακα. Το αντικείμενο ResultSet χρησιμοποιείται για την πρόσβαση στα δεδομένα που ανακτώνται από τη βάση δεδομένων.
ResultSet rs 1= statemnt1.executeQuery(QUERY));
Μπορούμε να χρησιμοποιήσουμε τη μέθοδο executeQuery () για το ερώτημα SELECT. Όταν κάποιος προσπαθεί να εκτελέσει το ερώτημα εισαγωγής / ενημέρωσης, θα ρίξει το SQLExecption με το μήνυμα ' Η μέθοδος executeQuery δεν μπορεί να χρησιμοποιηθεί για ενημέρωση '.
Ένα αντικείμενο ResultSet δείχνει την τρέχουσα σειρά στο Resultset. Για να επαναλάβετε τα δεδομένα στο αντικείμενο ResultSet, καλέστε την επόμενη () μέθοδο σε ένα loop loop. Εάν δεν υπάρχει περισσότερη εγγραφή για ανάγνωση, θα επιστρέψει FALSE.
Το ResultSet μπορεί επίσης να χρησιμοποιηθεί για την ενημέρωση δεδομένων στο DB. Μπορούμε να λάβουμε τα δεδομένα από το ResultSet χρησιμοποιώντας μεθόδους λήψης όπως getInt (), getString (), getDate (). Πρέπει να περάσουμε το ευρετήριο στηλών ή το όνομα στήλης ως παράμετρο για να λάβουμε τις τιμές χρησιμοποιώντας τις μεθόδους Getter.
Στο επόμενο σεμινάριο θα μάθουμε περισσότερα για το ResultSet.
# 6) Κλείσιμο σύνδεσης
Τέλος, τελειώσαμε με το χειρισμό δεδομένων στο DB. Τώρα μπορούμε να κλείσουμε τη σύνδεση JDBC. Πρέπει να βεβαιωθούμε ότι έχουμε κλείσει τον πόρο αφού τον χρησιμοποιήσουμε. Εάν δεν τα κλείσουμε σωστά, ενδέχεται να καταλήξουμε σε συνδέσεις.
Όταν κλείνουμε το αντικείμενο σύνδεσης, τα αντικείμενα Statement και ResultSet θα κλείνουν αυτόματα.
conn.close();
Από το Java 7 και μετά, μπορούμε να κλείσουμε αυτόματα τις συνδέσεις JDBC χρησιμοποιώντας ένα μπλοκ try-catch. Η σύνδεση JDBC πρέπει να ανοίξει στην παρένθεση του μπλοκ δοκιμής. Μέσα στο μπλοκ δοκιμής, μπορείτε να κάνετε τις συνδέσεις βάσης δεδομένων κανονικά όπως εμείς.
Μόλις η εκτέλεση βγει από το μπλοκ δοκιμής, θα κλείσει αυτόματα τη σύνδεση. Σε αυτήν την περίπτωση, δεν χρειάζεται να κλείσουμε τη σύνδεση καλώντας τη μέθοδο conn.close στο πρόγραμμα Java.
try(Connection conn = DriverManager.getConnection(url, user, password)) { //database connection and operation }
Παράδειγμα σύνδεσης Java JDBC
Σε αυτό το παράδειγμα, θα δείτε πώς να εφαρμόσετε τα 6 βασικά βήματα για τη σύνδεση με τη βάση δεδομένων χρησιμοποιώντας το JDBC στο πρόγραμμα Java.
Δημιουργία πίνακα
Πριν από αυτό, πρώτα, δημιουργήστε έναν πίνακα και προσθέστε μερικές καταχωρήσεις σε αυτόν.
Ακολουθεί το ερώτημα SQL για τη δημιουργία πίνακα.
create table employee_details (empNum number(10), lastName varchar(50), firstName varchar(50), email varchar(255) , deptNum number(10), salary number(10));
Δημιούργησε τον πίνακα 'Employ_details' στο Oracle DB.
Εισαγωγή δεδομένων στον πίνακα
Χρησιμοποιώντας τα ακόλουθα ερωτήματα, εισαγάγετε τα δεδομένα στον πίνακα 'υπάλληλοι_στοιχεία'.
insert into employee_details values (1001, 'Luther', 'Martin', 'ml@gmail.com', 1, 13000); insert into employee_details values (1002, 'Murray', 'Keith', 'km@gmail.com', 2, 25000); insert into employee_details values (1003, 'Branson', 'John', 'jb@gmail.com', 3, 15000); insert into employee_details values (1004, 'Martin', 'Richard', 'rm@gmail.com', 4, 16000); insert into employee_details values (1005, 'Hickman', 'David', 'dh@gmail.com', 5, 17000);
Πρόγραμμα Java
Κατεβάστε το αρχείο βάζων JDBC και εισαγάγετέ το στο έργο Java.
package com.STH.JDBC; // import sql package to use it in our program import java.sql.*; public class Sample_JDBC_Program { public static void main(String() args) throws ClassNotFoundException, SQLException { // store the SQL statement in a string String QUERY = 'select * from employee_details'; //register the oracle driver with DriverManager Class.forName('oracle.jdbc.driver.OracleDriver'); //Here we have used Java 8 so opening the connection in try statement try(Connection conn = DriverManager.getConnection('jdbc:oracle:thin:system/pass123@localhost:1521:XE')) { Statement statemnt1 = conn.createStatement(); //Created statement and execute it ResultSet rs1 = statemnt1.executeQuery(QUERY); { //Get the values of the record using while loop while(rs1.next()) { int empNum = rs1.getInt('empNum'); String lastName = rs1.getString('lastName'); String firstName = rs1.getString('firstName'); String email = rs1.getString('email'); String deptNum = rs1.getString('deptNum'); String salary = rs1.getString('salary'); //store the values which are retrieved using ResultSet and print it System.out.println(empNum + ',' +lastName+ ',' +firstName+ ',' +email +','+deptNum +',' +salary); } } } catch (SQLException e) { //If exception occurs catch it and exit the program e.printStackTrace(); } } }
Παραγωγή:
Βασικά σημεία που πρέπει να σημειωθούν:
- Πρώτον, πρέπει να εισαγάγουμε τα πακέτα που θα χρησιμοποιήσουμε στο πρόγραμμα Java για τη σύνδεση JDBC. Έτσι μπορούμε να χρησιμοποιήσουμε τις τάξεις, τις υποκατηγορίες και τις διεπαφές στα πακέτα.
- Πρέπει να εγγραφούμε ή να φορτώσουμε το πρόγραμμα οδήγησης στο DriverManager πριν από τη δημιουργία σύνδεσης.
- Μετά την εγγραφή του προγράμματος οδήγησης, μπορούμε να δημιουργήσουμε τη σύνδεση και να εκτελέσουμε τις λειτουργίες.
- Χρησιμοποιώντας μια διεπαφή δήλωσης μπορούμε να δημιουργήσουμε και να εκτελέσουμε το ερώτημα SQL. Για ένα απλό ερώτημα SQL, μπορούμε να χρησιμοποιήσουμε τη διεπαφή Statement. Για εισαγωγή / ενημέρωση / διαγραφή, μπορούμε να χρησιμοποιήσουμε τη διεπαφή PreparedStatement.
- Μετά την εκτέλεση της δήλωσης, τα αποτελέσματα θα αποθηκευτούν στο αντικείμενο ResultSet. Λαμβάνουμε τα αποτελέσματα από το αντικείμενο ResultSet χρησιμοποιώντας την επόμενη () μέθοδο για περισσότερες από 1 εγγραφές.
- Μόλις τελειώσουμε με τη λειτουργία της βάσης δεδομένων, πρέπει να κλείσουμε τη σύνδεση. Για να είναι διαθέσιμος ο πόρος για χρήση από άλλους.
Συχνές Ερωτήσεις
Q # 1) Ποια είναι τα βασικά βήματα για να συνδεθείτε στο DB στην Java;
Απάντηση: Υπάρχουν 6 βασικά βήματα για σύνδεση στο DB στην Java.
Αυτοί είναι:
- Πακέτο εισαγωγής
- Φόρτωση προγράμματος οδήγησης
- Δημιουργία σύνδεσης
- Δημιουργήστε και εκτελέστε τη δήλωση
- Ανάκτηση αποτελεσμάτων
- Κλείσιμο σύνδεσης
Q # 2) Ποια είναι η διαφορά μεταξύ των τύπων δεδομένων BLOB και CLOB στο JDBC;
Απάντηση:
ΑΜΟΡΦΗ ΜΑΖΑ χρησιμοποιείται για τη διατήρηση του δυαδικού τύπου δεδομένων. Το μέγεθος αποθήκευσης ενδέχεται να διαφέρει ανάλογα με τις βάσεις δεδομένων Παράδειγμα: εικόνες, φωνή, βίντεο.
CLOB χρησιμοποιείται για τη διατήρηση του τύπου χαρακτήρα των δεδομένων. Όπως το CLOB, ο χώρος αποθήκευσης ενδέχεται να διαφέρει ανάλογα με το DB. Παράδειγμα: αρχεία.
Q # 3) Ποια μέθοδος της κλάσης DriverManager χρησιμοποιείται για τη δημιουργία σύνδεσης με DB;
Απάντηση: Η κλάση DriverManager έχει μια μέθοδο getConnection () που χρησιμοποιείται για τη δημιουργία σύνδεσης με DB.
Q # 4) Ποια είναι η διαφορά μεταξύ Class.forName () και DriverManager.registerDriver ();
Απάντηση: Class.forName () - Πρώτα φορτώνει το πρόγραμμα οδήγησης στη μνήμη και, στη συνέχεια, καταχωρεί το κατάλληλο πρόγραμμα οδήγησης στο Driver Manager. Στη συνέχεια, θα δημιουργήσει ένα αντικείμενο του προγράμματος οδήγησης για την εκτέλεση της σύνδεσης JDBC. Θα φορτώσει το πρόγραμμα οδήγησης ρητά.
DriverManager.registerDriver () - Καταγράφει σιωπηρά τον οδηγό.
Q # 5) Τι είναι η διαρροή σύνδεσης;
Απάντηση: Αυτή η κατάσταση εμφανίζεται όταν ανοίγει μια σύνδεση και δεν την κλείσατε. Εάν υπάρχει ένα μπλοκ κώδικα, το οποίο ανοίγει τη σύνδεση και δεν κλείνει τη σύνδεση. Κάθε φορά που εκτελείται αυτό το μπλοκ κώδικα, μια σύνδεση θα διαρρεύσει από το Connection Pool.
Μόλις διαρρεύσουν όλες οι διαθέσιμες συνδέσεις, καμία σύνδεση δεν θα είναι διαθέσιμη και η εφαρμογή θα σταματήσει. Πόσο σημαντικό είναι να ανοίξετε τη σύνδεση τόσο σημαντικό είναι να κλείσετε τη σύνδεση.
Q # 6) Είναι υποχρεωτικό να κλείσετε τη σύνδεση;
Απάντηση: Εάν χρησιμοποιείτε εκδόσεις Java κάτω από 7, πρέπει να κλείσετε τη σύνδεση με μη αυτόματο τρόπο.
Από τις εκδόσεις πάνω από το Java 7, μπορούμε να κλείσουμε αυτόματα τη σύνδεση ανοίγοντας τον κώδικα σύνδεσης JDBC στην παρένθεση του μπλοκ δοκιμής. Μόλις το πρόγραμμα τερματίσει το μπλοκ δοκιμής, θα κλείσει αυτόματα τη σύνδεση.
συμπέρασμα
Σε αυτό το σεμινάριο, έχουμε συζητήσει πώς να δημιουργήσετε μια σύνδεση JDBC. Τώρα μπορείτε να εκτελέσετε λειτουργίες DB χρησιμοποιώντας το JDBC στο πρόγραμμα Java. Εξερευνήσαμε τα 6 βασικά βήματα για να συνδεθείτε με τη βάση δεδομένων. Πρέπει να εισαγάγουμε τα πακέτα στο πρόγραμμα Java για να το χρησιμοποιήσουμε.
Μόλις καταχωρήσουμε το πρόγραμμα οδήγησης, μπορούμε να δημιουργήσουμε τη σύνδεση. Μπορούμε να δημιουργήσουμε και να εκτελέσουμε τη δήλωση SQL χρησιμοποιώντας μια διεπαφή Statement και να ανακτήσουμε τα αποτελέσματα στο αντικείμενο ResultSet. Ως το τελευταίο βήμα, πρέπει να κλείσουμε τη σύνδεση.
Συνιστώμενη ανάγνωση
- Εκμάθηση Java JDBC: Τι είναι το JDBC (Συνδεσιμότητα βάσης δεδομένων Java)
- Java Interface και Abstract Class Tutorial με παραδείγματα
- Διαχείριση συναλλαγών Java JDBC με παράδειγμα
- JDBC DriverManager, JDBC PreparedStatement And Statement
- JDBC ResultSet: Τρόπος χρήσης Java ResultSet για ανάκτηση δεδομένων
- Εκπαιδευτικό πρόγραμμα JAVA για αρχάριους: 100+ πρακτικά εκπαιδευτικά βίντεο Java
- Εισαγωγή στη γλώσσα προγραμματισμού Java - Video Tutorial
- Δοκιμή Selenium Database (Χρήση WebDriver και JDBC API)