JDBC | |
---|---|
Type | Data Access API |
Skrevet i | Java |
Hardware platform | Java virtuel maskine |
nyeste version | JDBC 4.3 (21. september 2017 ) |
Internet side | Java SE 8 |
Mediefiler på Wikimedia Commons |
JDBC ( Eng. Java DataBase Connectivity - forbindelse med Java - databaser ) er en platformsuafhængig industristandard for interaktion af Java-applikationer med forskellige DBMS , implementeret som en pakke java.sqlinkluderet i Java SE .
JDBC er baseret på konceptet med såkaldte drivere, der giver dig mulighed for at få forbindelse til en database på en specielt beskrevet URL . Drivere kan indlæses dynamisk (mens programmet kører). Når den er indlæst, registrerer driveren sig selv og kaldes automatisk, når programmet kræver en URL , der indeholder den protokol, som driveren er ansvarlig for.
Sun Microsystems udgav JDBC som en del af JDK 1.1 den 19. februar 1997 [1] . Det har været en del af J2SE lige siden . JDBC-klasserne er i pakkerne java.sql og javax.sql. Siden version 3.1 er JDBC blevet udviklet under Java Community Process (JCP), som omfatter standardiserede specifikationer for Java-udviklere.
JDBC API'en indeholder to hovedtyper af grænseflader: den første er til applikationsudviklere og den anden (lavere niveau) er til driverudviklere.
Databaseforbindelsen er beskrevet af en klasse, der implementerer java.sql.Connection. Når du har forbindelse til databasen, kan du oprette objekter af typen Statement, der bruges til at udføre databaseforespørgsler i SQL -sproget .
Der er følgende typer af erklæringstyper, som er forskellige i formål:
Grænsefladen java.sql.ResultSetgør det nemt at behandle forespørgselsresultater.
Fordelene ved JDBC er:
Kode eksempel
JDBC til MySQL |
---|
Dette eksempel bruger den gratis MySQL JDBC-driver , som nemt kan installeres på de fleste Linux - distributioner via standardlagrene . |
packagejavaapplication1 ; _ importer java.sql.* ; offentlig klasse Main { public static void main ( String [] args ) kaster SQLException { /** * denne linje indlæser DB-driveren. * fjern kommentarer, hvis du skriver driveren manuelt */ //Class.forName("com.mysql.jdbc.Driver"); Forbindelse conn = null ; prøv { conn = Driver Manager . getConnection ( "jdbc:mysql://localhost:3306/db_name" , "bruger" , "adgangskode" ); if ( conn == null ) { System . ud . println ( "Kan ikke oprette forbindelse til databasen!" ); System . exit ( 0 ); } Udsagn stmt = conn . createStatement (); ResultSet rs = stmt . executeQuery ( "SELECT * FROM-brugere" ); while ( rs . next ()) { System . ud . println ( rs . getRow () + ". " + rs . getString ( "fornavn" ) + "\t" + rs . getString ( "efternavn" )); } /** * stmt.close(); * Lukning af en erklæring lukker automatisk * alle åbne ResultSet - objekter knyttet til den * / stmt . lukke (); } catch ( SQLException e ) { e . printStackTrace (); } endelig { if ( conn != null ){ conn . lukke (); } } } } |
JDBC til Microsoft SQL Server |
---|
Dette eksempel bruger jTDS , en gratis JDBC-driver til Microsoft SQL Server og Sybase ASE SQL-Server . Du kan også oprette forbindelse til denne og andre DBMS'er indbygget ved at bruge JDBC-driveren til ODBC , men på bekostning af at gøre tingene langsommere. |
/** * denne linje angiver en alternativ DB-driver. For eksempel hsql. */ // Class.forName("org.hsqldb.jdbcDriver"); Connection conn = DriverManager . getConnection ( "jdbc:jtds:sqlserver://SERVER/Northwind;instance=INST;domain=Sample_NTLM_Domain" , "user" , "password" ); Udsagn stmt = conn . createStatement (); ResultSet rs = stmt . executeQuery ( "SELECT Efternavn + ' ' + Fornavn AS Fuldt Navn, Adresse FRA medarbejdere" ); while ( rs . next ()) { System . ud . println ( rs . getString ( "Fuldt navn" ) + "\t" + rs . getString ( "Adresse" )); } kr . lukke (); stmt . lukke (); |
Database | |
---|---|
Begreber |
|
Objekter | |
Nøgler | |
SQL | |
Komponenter |