Java Developers Kit inneholder en pakke kjent som Java Database Connectivity API , eller JDBC for korte. Dette gir et enkelt grensesnitt for å kommunisere med en hvilken som helst database pakke som gir en JDBC driver. De fleste store databaseløsninger , inkludert MySQL , gi en JDBC driver enten på deres installere plater eller fritt lastes ned fra deres nettside . MySQL JDBC Driver
JDBC driver for MySQL er oppkalt MySQL :: Connector /J , og det er en svært grundig gjennomføring av JDBC API. Sjåføren vil være en JAR -fil som må være plassert på Java klassebane . Den vanligste Java IDE -tallet, spesielt Eclipse og NetBeans , vil gjøre dette for deg, forutsatt at du referere til sjåføren filen som et bibliotek . I tillegg, for å bruke kommandoer fra JDBC API, må du sette inn følgende kommando på toppen av en hvilken som helst klasse som vil direkte bruke JDBC
import java.sql * ; . .
Setup
Mens JDBC forsøk på å gjøre ved hjelp av databasene i Java- programmer så enkel som mulig , er det en rekke tiltak for å følge for å sette opp databasen tilkobling . Siden det er mulig å skrive et program som inneholder flere database drivere , før du kobler til en database du må informere API av hvilken driver du vil bruke . For dette, kjører du følgende: .
Class.forName ( " com.mysql.jdbc.Driver ") newInstance ();
Dette vil returnere en forekomst av Driver klassen (som er inkludert i java.sql ) , og du kan lagre referanse til den forekomsten for senere bruk hvis du vil. Det er imidlertid ikke nødvendig i de fleste tilfeller. Skulle du få en feilmelding , dette mest sannsynlig betyr at klassen banen ikke er riktig konfigurert.
Opprette en tilkobling
database tilkobling må skje med en URL eller en IP-adresse . Hvis databasen kjører på samme maskin som Java-program, er dette enkelt : URL- er localhost , med en betydelig tillegg : protokollen ( eller url) identifikator. En kjent en for nettet er "http://" . For en MySQL JDBC database, er riktig protokoll identifikator " jdbc : mysql ://"
Connection conn = DriverManager.getConnection ( " JDBC: mysql ://localhost" , brukernavn, passord); .
håndtere feil
Eventuelle feil om en forbindelse, et utsagn eller et resultat sett vil være av SQLException type. For mer informasjon om den spesifikke feilen , bør du ta SQLException og skrive sin feilmelding til konsollen. En mulig kilde til forvirring er hastigheten som tilkoblinger gang ut. Det er rikelig med tid til å koble til, kjøre noen spørsmål og få resultater , men nesten helt sikkert ikke tid til å vente på brukerundersøkelser etter en tilkobling. Hvis du må vente på brukerundersøkelser, er det vanligvis en bedre praksis å koble fra, hente brukerundersøkelser og koble på nytt for å kjøre spørringene .
Søk og resultater
det er to viktige klasser for samspill med databasen gang koblet : uttalelsen og ResultSet
Statement s = conn.createStatement (); s.executeQuery ( "SELECT * FROM ansatte "); ResultSet rs = s . . getResultSet ();
erklæringen sender ganske enkelt SQL- strengen til databasen , slik at spørsmål må bli skrevet i den opprinnelige dialekt av SQL for databasen som brukes . En viktig egenskap ved et ResultSet er at den henter data fra serveren én rad om gangen, og bare henter data når raden er bedt om. Koden ovenfor har ikke lastet ned noen resultater ennå fra serveren .
Fordi det er umulig på de fleste systemer for å vite størrelsen på et resultat satt før alle resultatene er hentet , er det best å lagre et resultat sett , i det minste midlertidig , i en datastruktur som effektivt kan skaleres. Javas LinkedList klassen er perfekt for denne
LinkedList resultater = new LinkedList (); . While ( rs.next ( ) ) { results.add ( rs.getString ( " fornavn ")); }
< p> Og , er det alltid lurt å lukke tilkoblinger eksplisitt heller enn å la dem timeout : en
rs.close (); s.close (); conn.close ();