Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> PHP /MySQL Προγραμματισμός

MySQL JDBC Tutorials

Η Connectivity (Java Database ή JDBC ) API είναι ένα σύνολο τυποποιημένων κατηγοριών σχεδιαστεί για να παρέχει μια ενιαία διεπαφή για τη σύνδεση με όλες τις μεγάλες λύσεις βάσεων δεδομένων . Υποστηριζόμενες βάσεις δεδομένων για το JDBC περιλαμβάνουν MySQL , Oracle , PostgreSQL , DB2 και Microsoft SQL Server. Αυτό το άρθρο θα χρησιμοποιήσει το λογισμικό ανοικτού κώδικα βάσης δεδομένων , MySQL , για την ανάδειξη των αρχών JDBC . Λήψη και σύνδεση με τον MySQL JDBC Driver
Η

JDBC απαιτεί ένα πρόγραμμα οδήγησης για κάθε τύπο βάσης δεδομένων που θα συνδεθεί , καθώς και την παραγωγή και τη συντήρηση του εν λόγω οδηγού είναι η ευθύνη τους προγραμματιστές του λογισμικού βάσεων δεδομένων . Στην περίπτωση της MySQL , ο επίσημος οδηγός JDBC ονομάζεται MySQL :: Connector /J , και μπορούν να ληφθούν ελεύθερα από την ιστοσελίδα του MySQL . Ο οδηγός θα είναι ένα αρχείο JAR , και αυτό το αρχείο πρέπει να είναι στο classpath Java . Οι περισσότεροι Java IDE θα χειριστεί αυτό αυτόματα για σας εάν προσθέσετε το αρχείο προγράμματος οδήγησης ως εξωτερική βιβλιοθήκη .

Όλες οι εντολές που απαιτούνται για την αλληλεπίδραση με το JDBC πρέπει να είναι διαθέσιμα με την εισαγωγή java.sql . * Στην κορυφή της κατηγορίας σας αρχείο .
Εγγραφείτε τη Driver
Η

Αυτό δεν απαιτεί από εσάς να στείλετε μια φόρμα εγγραφής με την Sun. Αυτό είναι να πω Java ποιο πρόγραμμα οδήγησης βάσης δεδομένων που πρόκειται να χρησιμοποιείτε με το JDBC για τα ακόλουθα ερωτήματα . Καταχωρείτε το πρόγραμμα οδήγησης με την ακόλουθη εντολή : .

Driver d = ( Driver ) Class.forName ( " com.mysql.jdbc.Driver " ) newInstance ( ) ?

Το περιεχόμενο της όνομα του οδηγού ( com.mysql.jdbc.Driver ) εφαρμόζεται μόνο σε MySQL . Η ακριβής σειρά που απαιτείται για τους άλλους οδηγούς της βάσης δεδομένων ( όπως η PostgresSQL ) θα είναι διαφορετική .

Εάν λάβετε ένα java.lang.ClassNotFoundException , αυτό πιθανότατα σημαίνει ότι ο οδηγός σας δεν είναι στην τάξη διαδρομή .

εικόνων Καθιέρωση οι Σύνδεση
Η

συνδέσεις καθορίζονται με την ακόλουθη εντολή :

σύνδεσης conn = DriverManager.getConnection ( url , το username , password) ?

Εάν η βάση δεδομένων βρίσκεται στον ίδιο υπολογιστή με τον πελάτη Java πρόσβαση σε αυτό , τότε " localhost " θα λειτουργήσει ως μια διεύθυνση στις περισσότερες περιπτώσεις . Εάν ο αριθμός θύρας για τη βάση δεδομένων δεν είναι η προεπιλεγμένη για το πακέτο βάσης δεδομένων , τότε μπορεί να προσαρτηθεί στην διεύθυνση URL χρησιμοποιώντας μια άνω και κάτω τελεία .

Μια σημαντική προσθήκη είναι το αναγνωριστικό URL . Αυτό θα αλλάξει για διαφορετικούς εξυπηρετητές βάσεων δεδομένων . Ωστόσο , για τη MySQL , θα είναι η εξής ισχύουν: String url = " jdbc : mysql ://localhost : 8080 " ?

Σε περίπτωση που μία σύνδεση αποτύχει για οποιονδήποτε λόγο , ένα SQLException θα ριχτούν και θα περιέχει ένα μήνυμα σφάλματος με περισσότερες πληροφορίες που μπορείτε να εκτυπώσετε για να System.err για τον εντοπισμό σφαλμάτων .
εικόνων Database timeouts
Η

είναι σημαντικό να θυμόμαστε ότι, από τη δημιουργία της σύνδεσης , ένα υπάρχει ενεργή σύνδεση μεταξύ του πελάτη και του διακομιστή . Ωστόσο , πολλές βάσεις δεδομένων έχουν πολύ αυστηρές προδιαγραφές time-out . Είναι σημαντικό το γεγονός ότι δεν είναι μια σύνδεση να προσδιοριστεί μέχρι ερωτήματα είναι έτοιμα . Αντί να δημιουργήσει μια σύνδεση και στη συνέχεια να περιμένουν για είσοδο χρήστη να γνωρίζει τι ερωτήματα να τρέχει , είναι καλύτερα να δημιουργήσετε μια σύνδεση δοκιμής , αποσυνδέστε και συνδέστε ξανά τη στιγμή που τα ερωτήματα είναι διαθέσιμες .
Εικόνων Εκτέλεση ερωτήματος και Λήψη Αποτελέσματα
Η

να εκδώσει ένα ερώτημα , θα πρέπει να δημιουργήσετε μια δήλωση , χρησιμοποιώντας μια ενεργή σύνδεση της βάσης δεδομένων

δήλωση s = conn.createStatement ()? . s.executeQuery ( "SELECT * FROM " + tableName ) ?

να αποκτήσετε τα αποτελέσματα , μπορείτε να εκτελέσετε αμέσως :

rs ResultSet = s.getResultSet ( ) ?
εικόνων Resultsets

ένα σημαντικό πράγμα που πρέπει να ξέρετε για Resultsets είναι ότι αντλεί δεδομένα από το διακομιστή κατά μία γραμμή τη φορά . Η παραπάνω εντολή αρχικοποιεί μόνο ένα αντικείμενο ResultSet και παίρνει κάποια μεταδεδομένα σχετικά με αυτό το αντικείμενο ( το πιο σημαντικό στήλη ονόματα και τους τύπους ) . Δεν ανακτήσετε στην πραγματικότητα τα δεδομένα . Τα δεδομένα πρέπει να τραβηχτεί έξω από ένα ResultSet και να αποθηκεύονται σε κάποια άλλη θέση πριν από τον τερματισμό της σύνδεσης , γενικά με ένα βρόχο που αναζητούν κάτι σαν :

δεδομένα LinkedList = νέα LinkedList ( ) ? Ενώ ( rs.next ( ) ) { data.add ( rs.getString ( 1 ) ) ? //Ανάκτηση όλα τα δεδομένα από την πρώτη στήλη }
εικόνων Κλείσιμο Συνδέσεις
Η

τις περισσότερες φορές , η οδηγός θα χειριστεί η ίδια συνδέσεων κλεισίματος . Ωστόσο , μπορεί να βοηθήσει στην πρόληψη των προβλημάτων αργότερα, αν κλείνετε πάντα ρητά ResultSet , Δήλωση και συνδέσεις σας όταν τελειώσετε με αυτούς

rs.close ()? . S.close ( ) ? Conn.Close ( ) ?
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα