MySQL JDBC Guider

Den jdbc (eller JDBC) API er et sett med standard klasser utviklet for å gi et enkelt felles grensesnitt for tilkobling til alle store databaseløsninger. Støttede databaser for JDBC inkluderer MySQL, Oracle, PostgreSQL, DB2 og Microsoft SQL Server. Denne artikkelen vil bruke åpen kildekode database programvare, MySQL, for å illustrere de JDBC prinsipper.

Last ned og Link til MySQL JDBC Driver

JDBC krever en driver for alle typer database vil koble til, og produksjon og vedlikehold av denne driveren er ansvaret til utviklerne av databaseprogramvare. I tilfelle av MySQL, er den offisielle JDBC driver kalt MySQL :: Connector / J, og kan fås fritt fra MySQL nettsiden. Sjåføren skal være en JAR-fil, og denne filen må være i Java klassebanen. De fleste Java IDE-er vil håndtere dette automatisk for deg hvis du legger driverfilen som en ekstern bibliotek.

Alle kommandoer som trengs for å kommunisere med JDBC skal være tilgjengelig ved å importere java.sql. * På toppen av din klasse fil.

Registrer Driver

Dette betyr ikke at du må sende påmeldingsskjema til Sun. Dette er for å fortelle Java som databasedriveren du skal bruke med JDBC for følgende spørsmål. Du registrerer sjåføren med følgende kommando:

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

Innholdet i sjåførens navn (com.mysql.jdbc.Driver) gjelder bare for MySQL. Den nøyaktige strengen trengs til andre databasedrivere (som PostgresSQL) vil være forskjellig.

Hvis du mottar en java.lang.ClassNotFoundException, betyr dette mest sannsynlig at driveren ikke er på klassen banen.

etablere Connection

Tilkoblinger er etablert med følgende kommando:

Tilkobling conn = DriverManager.getConnection (URL, brukernavn, passord);

Hvis databasen er på samme maskin som Java-klient tilgang til det, deretter "localhost" vil fungere som en adresse i de fleste tilfeller. Hvis portnummeret for databasen er ikke standard for at databasepakken, så det kan legges til nettadressen ved hjelp av et kolon.

Et viktig tillegg er nettadressen identifikator. Dette vil endre seg for ulike databaseservere. Imidlertid, for MySQL, vil følgende gjelde:
String URL = "jdbc: mysql: // localhost: 8080"

Skulle en tilkobling mislykkes eller annen grunn, vil en SQLException bli kastet, og den vil inneholde en feilmelding med mer informasjon som du kan skrive ut til System.err for debugging.

Database Tidsavbrudd

Det er viktig å huske at det pr oppretter forbindelsen finnes en aktiv tilkobling mellom klient og server. Men mange databaser har svært stramme tids ut krav. Det er viktig at en tilkobling ikke etableres før spørringer er klare. Snarere enn å etablere en forbindelse og deretter vente på brukerundersøkelser for å vite hvilke søk for å kjøre, er det bedre å etablere en prøveuttak, koble fra og deretter koble gang spørringer er tilgjengelige.

Kjør spørring og hente resultater

Å utstede en spørring, må du opprette en setning med en aktiv tilkobling databasen.

Uttalelse s = conn.createStatement ()

s.executeQuery ( "SELECT * FROM" + tabellnavn)

For å oppnå de resultatene, kan du umiddelbart kjøre:

ResultSet rs = s.getResultSet ();

ResultSets

En viktig ting å vite om ResultSets er at de trekker data fra serveren én rad om gangen. Kommandoen ovenfor initialiserer bare et ResultSet objekt og får noen metadata om at objekt (viktigst kolonnenavn og typer). Det spiller egentlig ikke hente data. Data må trekkes ut av et ResultSet og lagret i et annet sted før forbindelsen er lukket, vanligvis med en løkke ser omtrent slik ut:

Linked data = ny Linked ()

while (rs.next ()) {
data.add (rs.getString (1)); // Hent alle data fra den første kolonnen
}

nære forbindelser

Mesteparten av tiden, vil driveren håndtere avsluttende forbindelser i seg selv. Men det kan bidra til å forhindre problemer senere hvis du alltid eksplisitt lukke ResultSet, Statement og tilkoblinger når du er ferdig med dem.

rs.close ()

s.close ()

conn.close ();