
Owen Little
0
4012
1057
Java leverer JDBC (Java DataBase Connectivity) som en del af Java SDK (Software Development Kit). Ved hjælp af denne API er det meget nemt at oprette forbindelse til en relationsdatabase Så hvad er en database, alligevel? [MakeUseOf Explains] Så hvad er en database alligevel? [MakeUseOf Explains] For en programmør eller en teknologientusiast er begrebet en database noget, der virkelig kan tages for givet. For mange mennesker er konceptet med en database selv lidt fremmed ... og udfører almindelige operationer, såsom forespørgsel, indsættelse, opdatering og sletning af poster.
Mens den centrale JDBC API er inkluderet i java, kræver forbindelse til en bestemt database, såsom MySQL eller SQL Server, en ekstra komponent, der kaldes databasedriveren. Denne databasedriver er en softwarekomponent, der oversætter de centrale JDBC-opkald til et format, der forstås af den database.
Lad os i denne artikel se på detaljerne om forbindelse til en MySQL-database, og hvordan vi udfører et par forespørgsler med den.
MySQL databasedriver
Som forklaret ovenfor skal du bruge JDBC-driveren til MySQL for at kunne oprette forbindelse til en MySQL-database. Dette kaldes Connector / J-driveren og kan downloades fra MySQL-stedet her.
Når du har downloadet ZIP-filen (eller TAR.GZ) -filen, skal du udpakke arkivet og kopiere JAR-filen mysql-stik-java-bin.jar til et passende sted. Denne fil er påkrævet for at køre enhver kode, der bruger MySQL JDBC-driveren.
Oprettelse af en eksempeldatabase
Forudsat at du har downloadet MySQL-databasen og indstillet den korrekt Sådan installeres en MySQL-database på Windows Sådan installeres en MySQL-database på Windows Hvis du ofte skriver applikationer, der opretter forbindelse til databaseservere, er det rart, hvis du ved, hvordan du installerer en MySQL-database på din Windows-maskine til testformål. hvor du har adgang til det, så lad os oprette en eksempeldatabase, så vi kan bruge den til at forbinde og udføre forespørgsler.
Opret forbindelse til databasen ved hjælp af en klient efter eget valg og kør følgende udsagn for at oprette en eksempeldatabase.
oprette databaseprøve;
Vi har også brug for et brugernavn og adgangskode for at kunne oprette forbindelse til databasen (medmindre du vil oprette forbindelse som administrator, hvilket generelt er en dårlig idé).
Følgende opretter en bruger, der hedder testuser der opretter forbindelse til MySQL-databasen fra den samme maskine, hvor den kører (angivet med localhost), ved hjælp af adgangskoden securepwd.
oprette bruger 'testuser' @ 'localhost' identificeret med 'securepwd';
Hvis du opretter forbindelse til en database, der kører på en anden maskine (navngivet remotemc), skal du bruge følgende (remotemc kan være et værtsnavn eller en ip-adresse):
oprette bruger 'testuser' @ 'remotemc' identificeret med 'securepwd';
Nu, hvor brugernavnet og adgangskoden er oprettet, er vi nødt til at give adgang til den tidligere eksempeldatabase.
give alt på prøve. * til 'testuser' @ 'localhost';
Eller, hvis databasen er fjern:
give alt på prøve. * til 'testuser' @ 'remotemc';
Du skal nu kontrollere, at du kan oprette forbindelse til databasen Sådan installeres en MySQL-database på Windows Sådan installeres en MySQL-database på Windows Hvis du ofte skriver applikationer, der opretter forbindelse til databaseservere, er det rart, hvis du ved, hvordan du installerer en MySQL-database på din Windows-maskine til testformål. som bruger, du lige har oprettet med den samme adgangskode. Du kan også køre følgende kommandoer efter tilslutning for at sikre dig, at tilladelserne er korrekte.
oprette tabel joe (id int primær nøgle auto_inkrement, navn varchar (25)); drop bord joe;
Opsæt Java Class-sti
Lad os nu gå nærmere ind på, hvordan du opretter forbindelse til MySQL fra Java 10 Core Java-koncepter, du skal lære, når du kommer i gang. 10 Core Java-koncepter, du skal lære, når du kommer i gang, hvad enten du skriver en GUI, udvikler serversiden software eller en mobilapplikation ved hjælp af Android, læring af Java vil tjene dig godt. Her er nogle centrale Java-koncepter, der hjælper dig med at komme i gang. . Det første trin er at indlæse databasedriveren. Dette gøres ved at påberåbe sig følgende på et passende sted.
Class.forName ( "com.mysql.jdbc.Driver");
Koden kan kaste en undtagelse, så du kan fange den, hvis du har til hensigt at tackle den (f.eks. Formatering af fejlmeddelelsen til en GUI).
prøv Class.forName ("com.mysql.jdbc.Driver"); fangst (ClassNotFoundException ex) // brug undtagelsen her
Det er meget almindeligt at påberåbe sig denne kode i en statisk blok i klassen, så programmet mislykkes øjeblikkeligt, hvis driveren ikke kan indlæses.
offentlig klasse Eksempel statisk prøv Class.forName ("com.mysql.jdbc.Driver"); fangst (ClassNotFoundException ex) System.err.println ("Kan ikke indlæse MySQL Driver");
For at være i stand til at finde driveren skal programmet naturligvis påberåbes med driveren JAR (downloadet og ekstraheret ovenfor) inkluderet i klassestien som følger.
java -cp mysql-stik-java - bin.jar: ...
Opretter forbindelse til MySQL Fra Java
Nu hvor vi har kvadreret detaljerne for indlæsning af MySQL-driveren fra java, lad os få forbindelse til databasen. En måde at oprette en databaseforbindelse til at bruge DriverManager.
Streng jdbcUrl = ...; Forbindelse con = DriverManager.getConnection (jdbcUrl);
Og hvad er? jdbcUrl? Det viser detaljerne om forbindelsen, inklusive den server, hvor databasen er placeret, brugernavn og så videre. Her er en eksempel-URL til vores eksempel.
String jdbcUrl = "jdbc: mysql: // localhost / sample? User = testuser & password = secrepwd";
Bemærk, at vi har inkluderet alle de nødvendige parametre til forbindelse, inklusive værtsnavnet (localhost), brugernavn og adgangskode. (At medtage kodeordet som dette er IKKE en god praksis, se nedenfor for alternativer.)
Brug af dette jdbcUrl, her er et komplet program til at kontrollere forbindelse.
offentlig klasse Eksempel statisk prøv Class.forName ("com.mysql.jdbc.Driver"); fangst (ClassNotFoundException ex) System.err.println ("Kan ikke indlæse MySQL Driver"); statisk offentligt ugyldigt hoved (streng [] args) kaster undtagelse String jdbcUrl = "jdbc: mysql: // localhost / sample? user = testuser & password = securepwd"; Forbindelse con = DriverManager.getConnection (jdbcUrl); System.out.println ( "Connected!"); con.close ();
Bemærk, at en databaseforbindelse er en dyrebar ressource i et program og skal lukkes korrekt som ovenfor. Ovenstående kode lukker imidlertid ikke forbindelsen i tilfælde af en undtagelse. Brug følgende mønster for at lukke forbindelsen ved en normal eller unormal udgang:
prøv (Connection con = DriverManager.getConnection (jdbcUrl)) System.out.println ("Tilsluttet!");
Som nævnt ovenfor er det en dårlig ide at integrere adgangskoden i JDBC URL. For at specificere brugernavnet og adgangskoden direkte kan du i stedet bruge følgende forbindelsesindstilling.
String jdbcUrl = "jdbc: mysql: // localhost / sample"; prøv (Connection con = DriverManager.getConnection (jdbcUrl, "testuser", "securepwd"))
Forespørgsel efter databasen fra Java
Nu hvor forbindelsen til databasen er etableret, så lad os se, hvordan man udfører en forespørgsel, såsom forespørgsel om databaseversionen:
vælg version ();
En forespørgsel udføres i java som følger. EN Udmelding objekt oprettes, og en forespørgsel udføres ved hjælp af executeQuery () metode, der returnerer a ResultSet.
String queryString = "Vælg version ()"; Udsagn stmt = con.createStatement (); ResultSet rset = stmt.executeQuery (queryString);
Udskriv versionen fra ResultSet som følger. 1 henviser til indekset for kolonnen i resultaterne fra 1.
while (rset.next ()) System.out.println ("Version:" + rset.getString (1));
Efter behandling af resultaterne skal objekterne lukkes.
rset.close (); stmt.close ();
Og det dækker alt hvad der er at oprette forbindelse til MySQL fra java og udføre en enkel forespørgsel.
Har du brugt JDBC med MySQL i dine projekter? Hvilke problemer, hvis nogen, havde du med databaser og java? Fortæl os venligst i kommentarerne herunder.