De Java Database Connectivity ( of JDBC ) API is een set van standaard klassen ontworpen om een enkele eenheid te scheppen voor aansluiting op alle belangrijke database -oplossingen . Ondersteunde databases voor het JDBC omvatten MySQL , Oracle , PostgreSQL , DB2 en Microsoft SQL Server . Dit artikel zal de open source database -software , MySQL , gebruiken om de JDBC principes illustreren . Download en link naar de MySQL JDBC Driver JDBC vereist een driver voor elk type database zal aansluiten op , en de productie en het onderhoud van die driver is de verantwoordelijkheid van de ontwikkelaars van de databasesoftware . In het geval van MySQL , is de officiële JDBC -driver genaamd MySQL :: Connector /J , en kunnen vrij uit de MySQL webpagina worden verkregen . De chauffeur zal een JAR-bestand te zijn , en dit bestand moet in de Java classpath . De meeste Java IDE 's zal dit automatisch voor u te behandelen als u het stuurprogramma als een externe bibliotheek toe te voegen . Alle commando's die nodig zijn voor de interactie met de JDBC moet beschikbaar zijn door het importeren java.sql . * Aan de bovenkant van je klas bestand . Registreer de Driver Dit betekent niet eisen dat u een inschrijfformulier sturen naar zon Dit is om Java te vertellen welke database driver die u gaat worden met behulp van de JDBC voor de volgende queries . U het stuurprogramma te registreren met het volgende commando : Driver d = ( Driver ) Class.forName ( " com.mysql.jdbc.Driver " ) newInstance ( ) ; De inhoud van de . naam van de bestuurder ( com.mysql.jdbc.Driver ) geldt alleen voor MySQL . De precieze snaar nodig voor andere database- drivers ( zoals PostgresSQL ) zal anders zijn . Als u een java.lang.ClassNotFoundException , dit betekent dit waarschijnlijk dat uw chauffeur is niet van de klasse pad krijgen . verbinding maken Connections zijn opgericht met het volgende commando : Connection conn = DriverManager.getConnection ( url , gebruikersnaam, wachtwoord ) ; < br > als de database op dezelfde computer als de Java-client toegang tot het, dan is " localhost " zal werken als een adres in de meeste gevallen . Als het poortnummer voor de database is niet de standaard voor die database pakket , dan kan het worden toegevoegd aan de URL met behulp van een dubbele punt . Een belangrijke toevoeging is de URL identifier . Dit zal veranderen voor verschillende databaseservers . Echter , voor MySQL , de volgende zou geldig zijn : String url = " jdbc : mysql ://localhost : 8080 " ; Mocht een verbinding uitvalt , zal een SQLException worden gegooid , en het zal bevatten een foutmelding met meer informatie die u kunt afdrukken om System.err voor debugging . Database Timeouts p Het is belangrijk te onthouden dat , zoals het creëren van de verbinding , een bestaat actieve verbinding tussen client en server . Echter , veel databases hebben zeer strakke time- out eisen . Het is belangrijk dat er geen verbinding worden totdat de query's zijn klaar . In plaats van een verbinding tot stand en dan wachten op invoer van de gebruiker om te weten wat vraagt om te draaien , is het beter om een test -verbinding tot stand , los en sluit zodra queries zijn beschikbaar . Query uitvoeren en Fetch Resultaten . u een query wilt geven , moet u een verklaring met behulp van een actieve verbinding is de database verklaring s = conn.createStatement ( ) te creëren; s.executeQuery ( "SELECT * FROM " + tableName ) ; Om de resultaten te verkrijgen , kunt u onmiddellijk uit te voeren : ResultSet rs = s.getResultSet ( ) ; ResultSets < br > een belangrijk ding om te weten over ResultSets is dat ze gegevens van de server een rij tegelijk te trekken . Het bovenstaande commando initialiseert slechts een ResultSet object en krijgt een aantal metadata over dat object ( het allerbelangrijkste kolom namen en types ) . Het feitelijk geen gegevens op te halen . Gegevens moeten van een ResultSet worden getrokken en opgeslagen op een andere locatie voordat de verbinding wordt gesloten , meestal met een lus op zoek iets als : LinkedList databank = new LinkedList ( ) , terwijl ( rs.next ( ) ) { data.add ( rs.getString ( 1 ) ) ; //Haal alle gegevens van de eerste kolom } Close Connections de meeste van de tijd , de chauffeur zal zich bezighouden met het sluiten aansluitingen zelf . Echter , het kan helpen problemen te voorkomen later als je altijd expliciet sluit je ResultSet , Statement en aansluitingen wanneer u klaar bent met hen RS.Close ( ) op ; . S.close ( ) ; Conn.Close ( ) ;
|