Annonse

Java gir JDBC (Java DataBase Connectivity) som en del av Java SDK (Software Development Kit). Bruker dette API, er det veldig enkelt å koble seg til en relasjonsdatabase Så hva er en database, likevel? [MakeUseOf Explains]For en programmerer eller en teknologientusiast er konseptet med en database noe som kan tas for gitt. For mange mennesker er imidlertid konseptet med en database litt utenlandsk ... Les mer og utføre vanlige operasjoner som forespørsel, innsetting, oppdatering og sletting av poster.

Mens kjernen JDBC API er inkludert i java, krever tilkobling til en bestemt database, for eksempel MySQL eller SQL Server, en ekstra komponent kjent som databasedriveren. Denne databasedriveren er en programvarekomponent som oversetter de viktigste JDBC-anropene til et format som forstås av den databasen.

I denne artikkelen, la oss se på detaljene for tilkobling til en MySQL-database og hvordan vi utfører noen få spørsmål med den.

MySQL-databasedriveren

Som forklart ovenfor, for å kunne koble til en MySQL-database, trenger du JDBC-driveren for MySQL. Dette kalles Connector / J-driveren og kan lastes ned fra

MySQL-nettstedet her.

Når du har lastet ned ZIP-filen (eller TAR.GZ) -filen, trekker du ut arkivet og kopierer JAR-filen mysql-stikk-java-bin.jar til et passende sted. Denne filen er påkrevd for å kjøre en kode som bruker MySQL JDBC-driveren.

Opprette en eksempeldatabase

Forutsatt at du har lastet ned MySQL-databasen og sett den opp ordentlig Hvordan installere en MySQL-database på WindowsHvis du ofte skriver applikasjoner som kobles til databaseservere, er det fint om du vet hvordan du installerer en MySQL-database på Windows-maskinen din for testformål. Les mer der du har tilgang til den, la oss lage en eksempeldatabase slik at vi kan bruke den til å koble til og utføre spørsmål.

Koble til databasen ved hjelp av en klient du ønsker, og kjør følgende utsagn for å opprette en eksempeldatabase.

opprette databaseeksempel; 

Vi trenger også et brukernavn og passord for å kunne koble til databasen (med mindre du vil koble deg som administrator, noe som vanligvis er en dårlig idé).

Følgende oppretter en bruker som heter testuser som vil koble seg til MySQL-databasen fra samme maskin som den kjører (indikert av lokal vert), bruker passordet securepwd.

opprette bruker 'testuser' @ 'localhost' identifisert av 'securepwd'; 

Hvis du kobler til en database som kjører på en annen maskin (navngitt) remotemc), må du bruke følgende (remotemc kan være et vertsnavn eller en IP-adresse):

opprett bruker 'testuser' @ 'remotemc' identifisert av 'securepwd'; 

Nå som brukernavnet og passordet er opprettet, må vi gi tilgang til eksempeldatabasen som er samlet tidligere.

gi alt på prøve. * til 'testuser' @ 'localhost'; 

Eller, hvis databasen er ekstern:

gi alt på prøve. * til 'testuser' @ 'remotemc'; 

Du bør nå bekrefte at du kan koble til databasen Hvordan installere en MySQL-database på WindowsHvis du ofte skriver applikasjoner som kobles til databaseservere, er det fint om du vet hvordan du installerer en MySQL-database på Windows-maskinen din for testformål. Les mer som brukeren du nettopp opprettet med det samme passordet. Du kan også kjøre følgende kommandoer etter tilkobling, for å sikre at rettighetene er riktige.

opprette tabell joe (id int primærnøkkel auto_inkrement, navn varchar (25)); drop bord joe; 

Konfigurer Java Class Path

La oss nå komme inn på detaljene om hvordan du kobler til MySQL fra Java 10 Core Java-konsepter du bør lære når du kommer i gangEnten du skriver et GUI, utvikler programvaren på serversiden eller en mobilapplikasjon som bruker Android, vil lære Java tjene deg godt. Her er noen kjerne Java-konsepter som hjelper deg å komme i gang. Les mer . Det første trinnet er å laste inn databasedriveren. Dette gjøres ved å påkalle følgende på et passende sted.

Class.forName ( "com.mysql.jdbc. Sjåfør"); 

Koden kan kaste et unntak, slik at du kan fange den hvis du har tenkt å håndtere den (for eksempel formatering av feilmeldingen for et GUI).

prøv {Class.forName ("com.mysql.jdbc. Sjåfør"); } fangst (ClassNotFoundException ex) {// bruk unntaket her. }

Det er veldig vanlig å påkalle denne koden i en statisk blokk i klassen, så programmet mislykkes umiddelbart hvis driveren ikke kan lastes.

Eksempel på offentlig klasse. {statisk {prøv {Class.forName ("com.mysql.jdbc. Sjåfør"); } catch (ClassNotFoundException ex) {System.err.println ("Kan ikke laste MySQL Driver"); } } }

For å kunne finne driveren, må programmet selvfølgelig påberopes med driveren JAR (lastet ned og hentet ut over) inkludert i klassebanen som følger.

java -cp mysql-kontakt-java--bin.jar:... 

Koble til MySQL Fra Java

Nå som vi har kvadratet detaljene for å laste MySQL-driveren fra java, la oss få forbindelse til databasen. En måte å opprette en database-tilkobling for å bruke DriverManager.

Streng jdbcUrl =...; Tilkobling con = DriverManager.getConnection (jdbcUrl); 

Og hva er jdbcUrl? Det indikerer detaljene for tilkoblingen, inkludert serveren der databasen ligger, brukernavn og så videre. Her er en eksempel-URL for eksempelet vårt.

String jdbcUrl = "jdbc: mysql: // localhost / sample? user = testuser og passord = secrepwd "; 

Legg merke til at vi har inkludert alle parametrene som kreves for tilkobling, inkludert vertsnavnet (lokal vert), brukernavn og passord. (Å inkludere passordet som dette er IKKE en god praksis, se alternativer nedenfor.)

Bruker dette jdbcUrl, her er et komplett program for å sjekke tilkoblingen.

Eksempel på offentlig klasse. {statisk {prøv {Class.forName ("com.mysql.jdbc. Sjåfør"); } catch (ClassNotFoundException ex) {System.err.println ("Kan ikke laste MySQL Driver"); }} statisk offentlig tomrom main (streng [] args) kaster unntak {String jdbcUrl = "jdbc: mysql: // localhost / sample? user = testuser og passord = securepwd "; Tilkobling con = DriverManager.getConnection (jdbcUrl); System.out.println ( "Connected!"); con.close (); } }

Merk at en databaseforbindelse er en dyrebar ressurs i et program og må lukkes ordentlig som ovenfor. Koden ovenfor stenger imidlertid ikke forbindelsen i tilfelle et unntak. For å lukke forbindelsen ved en normal eller unormal utgang, bruk følgende mønster:

prøv (Connection con = DriverManager.getConnection (jdbcUrl)) {System.out.println ("Connected!"); }

Som nevnt ovenfor, er det en dårlig idé å legge inn passordet i JDBC URL. For å spesifisere brukernavn og passord direkte, kan du bruke følgende tilkoblingsalternativ i stedet.

String jdbcUrl = "jdbc: mysql: // localhost / sample"; prøv (Connection con = DriverManager.getConnection (jdbcUrl, "testuser", "securepwd")) { }

Spørre etter databasen fra Java

Nå som forbindelsen til databasen er opprettet, la oss se hvordan du utfører en spørring, for eksempel å spørre om databaseversjonen:

velg versjon (); 

En spørring utføres i java som følger. EN Uttalelse objekt opprettes og en spørring utføres ved hjelp av executeQuery () metode som returnerer a ResultSet.

String queryString = "velg versjon ()"; Uttalelse stmt = con.createStatement (); ResultSet rset = stmt.executeQuery (queryString); 

Skriv ut versjonen fra ResultSet som følger. 1 refererer til indeks over kolonnen i resultatene, fra 1.

while (rset.next ()) {System.out.println ("Versjon:" + rset.getString (1)); }

Etter behandling av resultatene må objektene lukkes.

rset.close (); stmt.close (); 

Og det dekker alt det som er å koble til MySQL fra java og utføre en enkel spørring.

Har du brukt JDBC med MySQL i prosjektene dine? Hvilke problemer, om noen, hadde du med databaser og java? Gi oss beskjed i kommentarene nedenfor.