Διαφήμιση
Η Java παρέχει JDBC (δυνατότητα σύνδεσης Java DataBase) ως μέρος του Java SDK (Κιτ Ανάπτυξης Λογισμικού). Χρησιμοποιώντας αυτό API, είναι πολύ εύκολο να συνδεθεί με ένα σχεσιακή βάση δεδομένων Έτσι, τι είναι μια βάση δεδομένων, ούτως ή άλλως; [Επεξηγήσεις MakeUseOf]Για έναν προγραμματιστή ή έναν ενθουσιώδη τεχνολογίας, η έννοια μιας βάσης δεδομένων είναι κάτι που πραγματικά μπορεί να θεωρηθεί δεδομένο. Ωστόσο, για πολλούς, η έννοια της ίδιας της βάσης δεδομένων είναι λίγο ξένη ... Διαβάστε περισσότερα και να εκτελέσετε κοινές λειτουργίες, όπως αναζήτηση, εισαγωγή, ενημέρωση και διαγραφή αρχείων.
Ενώ το βασικό API JDBC περιλαμβάνεται στη java, η σύνδεση σε μια συγκεκριμένη βάση δεδομένων, όπως η MySQL ή ο SQL Server, απαιτεί ένα πρόσθετο στοιχείο γνωστό ως πρόγραμμα οδήγησης βάσης δεδομένων. Αυτός ο οδηγός βάσης δεδομένων είναι ένα στοιχείο λογισμικού που μεταφράζει τις βασικές κλήσεις JDBC σε μορφή που γίνεται κατανοητή από αυτήν τη βάση δεδομένων.
Σε αυτό το άρθρο, ας δούμε τις λεπτομέρειες της σύνδεσης σε μια βάση δεδομένων MySQL και πώς να εκτελέσετε μερικές ερωτήσεις μαζί της.
Ο οδηγός βάσης δεδομένων MySQL
Όπως εξηγείται παραπάνω, για να μπορέσετε να συνδεθείτε σε μια βάση δεδομένων MySQL, χρειάζεστε το πρόγραμμα οδήγησης JDBC για MySQL. Αυτό ονομάζεται πρόγραμμα οδήγησης Connector / J και μπορείτε να το κατεβάσετε την τοποθεσία MySQL εδώ.
Μόλις κατεβάσετε το αρχείο ZIP (ή TAR.GZ), εξαγάγετε το αρχείο και αντιγράψτε το αρχείο JAR mysql-connector-java-bin.jar σε μια κατάλληλη τοποθεσία. Αυτό το αρχείο απαιτείται για την εκτέλεση οποιουδήποτε κώδικα που χρησιμοποιεί το πρόγραμμα οδήγησης JDBC της MySQL.
Δημιουργία δείγματος βάσης δεδομένων
Υποθέτοντας ότι έχετε κατεβάσει τη βάση δεδομένων MySQL και ρυθμίστε το σωστά Πώς να εγκαταστήσετε μια βάση δεδομένων MySQL στα WindowsΕάν γράφετε συχνά εφαρμογές που συνδέονται με διακομιστές βάσεων δεδομένων, είναι ωραίο αν γνωρίζετε πώς να εγκαταστήσετε μια βάση δεδομένων MySQL στη μηχανή των Windows σας για σκοπούς δοκιμής. Διαβάστε περισσότερα όπου έχετε πρόσβαση σε αυτό, ας δημιουργήσουμε μια βάση δεδομένων δείγματος ώστε να μπορούμε να την χρησιμοποιήσουμε για τη σύνδεση και την εκτέλεση ερωτημάτων.
Συνδεθείτε στη βάση δεδομένων χρησιμοποιώντας έναν πελάτη της επιλογής σας και εκτελέστε τις παρακάτω δηλώσεις για να δημιουργήσετε μια βάση δεδομένων δείγματος.
Δημιουργία δείγματος βάσης δεδομένων.
Χρειαζόμαστε επίσης ένα όνομα χρήστη και έναν κωδικό πρόσβασης για να μπορέσετε να συνδεθείτε στη βάση δεδομένων (εκτός αν θέλετε να συνδεθείτε ως διαχειριστής, κάτι που είναι γενικά κακή ιδέα).
Τα ακόλουθα δημιουργούν ένα όνομα χρήστη δοκιμαστής ο οποίος θα συνδεθεί στη βάση δεδομένων MySQL από το ίδιο μηχάνημα όπου εκτελείται (υποδεικνύεται με localhost), χρησιμοποιώντας τον κωδικό πρόσβασης securepwd.
δημιουργήστε το χρήστη 'testuser' @ 'localhost' που προσδιορίζεται από το 'securepwd'.
Εάν συνδέεστε σε βάση δεδομένων που εκτελείται σε άλλο μηχάνημα (με όνομα remotemc), πρέπει να χρησιμοποιήσετε τα εξής (remotemc μπορεί να είναι όνομα κεντρικού υπολογιστή ή διεύθυνση IP):
Δημιουργία του χρήστη 'testuser' @ 'remotemc' που προσδιορίζεται από το 'securepwd'.
Τώρα που έχει δημιουργηθεί το όνομα χρήστη και ο κωδικός πρόσβασης, πρέπει να παραχωρήσουμε πρόσβαση στην βάση δεδομένων που δημιουργήθηκε προηγουμένως.
παραχωρήστε όλα τα δείγματα. * to 'testuser' @ 'localhost'.
Ή, εάν η βάση δεδομένων είναι απομακρυσμένη:
παραχωρήστε όλα τα δείγματα. * to 'testuser' @ 'remotemc';
Θα πρέπει τώρα να επαληθεύσετε ότι μπορείτε συνδεθείτε στη βάση δεδομένων Πώς να εγκαταστήσετε μια βάση δεδομένων MySQL στα WindowsΕάν γράφετε συχνά εφαρμογές που συνδέονται με διακομιστές βάσεων δεδομένων, είναι ωραίο αν γνωρίζετε πώς να εγκαταστήσετε μια βάση δεδομένων MySQL στη μηχανή των Windows σας για σκοπούς δοκιμής. Διαβάστε περισσότερα ως χρήστης που μόλις δημιουργήσατε με τον ίδιο κωδικό πρόσβασης. Μπορείτε επίσης να εκτελέσετε τις ακόλουθες εντολές μετά τη σύνδεση, για να βεβαιωθείτε ότι όλα τα δικαιώματα είναι σωστά.
Δημιουργία πίνακα joe (id int πρωτεύον κλειδί auto_increment, όνομα varchar (25))? drop table joe?
Ρύθμιση διαδρομής κλάσης Java
Ας πάρουμε τώρα τις λεπτομέρειες για το πώς να συνδεθείτε με το MySQL από Ιάβα 10 βασικές έννοιες Java που πρέπει να μάθετε κατά το ξεκίνημαΕίτε γράφετε ένα γραφικό περιβάλλον, αναπτύσσοντας λογισμικό από την πλευρά του διακομιστή, είτε μια κινητή εφαρμογή που χρησιμοποιεί το Android, η εκμάθηση Java θα σας εξυπηρετήσει καλά. Εδώ είναι μερικές βασικές έννοιες Java που σας βοηθούν να ξεκινήσετε. Διαβάστε περισσότερα . Το πρώτο βήμα είναι να φορτώσετε το πρόγραμμα οδήγησης της βάσης δεδομένων. Αυτό γίνεται κάνοντας χρήση των ακόλουθων σε μια κατάλληλη τοποθεσία.
Class.forName ("com.mysql.jdbc. Οδηγός");
Ο κώδικας θα μπορούσε να κάνει μια εξαίρεση, ώστε να μπορείτε να το πιάσετε αν σκοπεύετε να το αντιμετωπίσετε (όπως μορφοποίηση του μηνύματος σφάλματος για ένα GUI).
δοκιμάστε {Class.forName ("com.mysql.jdbc. Οδηγός"); } catch (ClassNotFoundException ex) {// χρησιμοποιήστε την εξαίρεση εδώ. }
Είναι πολύ κοινό να καλέσετε αυτόν τον κώδικα σε ένα στατικό μπλοκ στην κλάση, οπότε το πρόγραμμα αποτυγχάνει αμέσως εάν δεν είναι δυνατή η φόρτωση του προγράμματος οδήγησης.
δημόσιο δείγμα κλάσης. {static {try {Class.forName ("com.mysql.jdbc. Οδηγός"); } catch (ClassNotFoundException ex) {System.err.println ("Δεν είναι δυνατή η φόρτωση του προγράμματος οδήγησης MySQL"). } } }
Φυσικά, για να μπορέσει να βρει τον οδηγό, το πρόγραμμα πρέπει να καλείται με τον οδηγό JAR (downloaded and extracted) που περιλαμβάνεται στη διαδρομή της κλάσης ως εξής.
java-cp mysql-connector-java--bin.jar:...
Σύνδεση με MySQL από την Java
Τώρα που έχουμε αποκομίσει τις λεπτομέρειες της φόρτωσης του προγράμματος οδήγησης MySQL από τη java, ας συνδεθούμε με τη βάση δεδομένων. Ένας τρόπος για να δημιουργήσετε μια σύνδεση βάσης δεδομένων είναι να χρησιμοποιήσετε το DriverManager.
String jdbcUrl =...; Σύνδεση con = DriverManager.getConnection (jdbcUrl);
Και τι είναι jdbcUrl? Δείχνει τις λεπτομέρειες της σύνδεσης, συμπεριλαμβανομένου του διακομιστή όπου βρίσκεται η βάση δεδομένων, το όνομα χρήστη και ούτω καθεξής. Ακολουθεί ένα δείγμα URL για το παράδειγμά μας.
Η συμβολοσειρά jdbcUrl = "jdbc: mysql: // localhost / sample? user = testuser & κωδικός πρόσβασης = secrepwd ";
Παρατηρήστε ότι έχουμε συμπεριλάβει όλες τις παραμέτρους που απαιτούνται για τη σύνδεση, συμπεριλαμβανομένου του ονόματος του κεντρικού υπολογιστή (localhost), όνομα χρήστη και κωδικός. (Συμπεριλαμβανομένου του κωδικού πρόσβασης όπως αυτή ΔΕΝ είναι καλή πρακτική, δείτε παρακάτω για εναλλακτικές λύσεις.)
Χρησιμοποιώντας αυτό jdbcUrl, εδώ είναι ένα πλήρες πρόγραμμα για να ελέγξετε τη συνδεσιμότητα.
δημόσιο δείγμα κλάσης. {static {try {Class.forName ("com.mysql.jdbc. Οδηγός"); } catch (ClassNotFoundException ex) {System.err.println ("Δεν είναι δυνατή η φόρτωση του προγράμματος οδήγησης MySQL"). }} στατικό δημόσιο κενό κύρια (String [] args) ρίχνει Εξαίρεση {String jdbcUrl = "jdbc: mysql: // localhost / sample? user = testuser & password = securepwd "; Σύνδεση con = DriverManager.getConnection (jdbcUrl); System.out.println ("Συνδεδεμένο!"); con.close (); } }
Σημειώστε ότι μια σύνδεση βάσης δεδομένων είναι ένας πολύτιμος πόρος σε ένα πρόγραμμα και πρέπει να κλείσει σωστά όπως παραπάνω. Ο παραπάνω κώδικας, ωστόσο, δεν κλείνει τη σύνδεση σε περίπτωση εξαίρεσης. Για να κλείσετε τη σύνδεση σε κανονική ή μη φυσιολογική έξοδο, χρησιμοποιήστε το ακόλουθο μοτίβο:
δοκιμάστε (Σύνδεση con = DriverManager.getConnection (jdbcUrl)) {System.out.println ("Συνδεδεμένο!"); }
Όπως σημειώθηκε παραπάνω, είναι κακή ιδέα να ενσωματώσετε τον κωδικό πρόσβασης στη διεύθυνση URL του JDBC. Για να καθορίσετε απευθείας το όνομα χρήστη και τον κωδικό πρόσβασης, μπορείτε να χρησιμοποιήσετε την παρακάτω επιλογή σύνδεσης.
Συμβολοσειρά jdbcUrl = "jdbc: mysql: // localhost / sample"; δοκιμάστε (Σύνδεση con = DriverManager.getConnection (jdbcUrl, "testuser", "securepwd")) { }
Ερώτημα της βάσης δεδομένων από την Java
Τώρα που έχει δημιουργηθεί η σύνδεση με τη βάση δεδομένων, ας δούμε πώς να εκτελέσουμε ένα ερώτημα, όπως ερώτημα στην έκδοση βάσης δεδομένων:
επιλέξτε την έκδοση ();
Ένα ερώτημα εκτελείται στη java ως εξής. ΕΝΑ Δήλωση δημιουργείται ένα αντικείμενο και εκτελείται ένα ερώτημα χρησιμοποιώντας το executeQuery () η οποία επιστρέφει a Αποτέλεσμα.
String queryString = "επιλέξτε την έκδοση ()"; Κατάσταση stmt = con.createStatement (); ΑποτέλεσμαSet rset = stmt.executeQuery (queryString);
Εκτυπώστε την έκδοση από το Αποτέλεσμα ως εξής. 1 αναφέρεται σε δείκτη της στήλης στα αποτελέσματα, ξεκινώντας από το 1.
ενώ (rset.next ()) {System.out.println ("Έκδοση:" + rset.getString (1)); }
Μετά την επεξεργασία των αποτελεσμάτων, τα αντικείμενα πρέπει να κλείσουν.
rset.close (); stmt.close ();
Και αυτό καλύπτει όλα όσα υπάρχει για τη σύνδεση με το MySQL από τη java και την εκτέλεση ενός απλού ερωτήματος.
Έχετε χρησιμοποιήσει το JDBC με MySQL στα έργα σας; Τι προβλήματα, αν υπάρχουν, με βάσεις δεδομένων και java; Ενημερώστε μας στα παρακάτω σχόλια.