programmera.net -> java -> normal för utskrift | info@programmera.net |
JDBC
1. Vad är JDBC? 2. JDBC-drivare 3. Anslutning och Datakälla |
1. Vad är JDBC?
JDBC (Java Database Connectivity) är ett API för SQL-anrop mot databaser. Tanken med JDBC är att man kan använda samma kommandon, oavsett vilken databas man använder sig av. Riktigt så bra är det kanske inte, men man kan säga att JDBC är "ganska" databasoberoende. JDBC används vanligtvis på följande sätt:
Vi ska snart titta på klassen JDBCTest.java, som är en HelloWorld applikation för JDBC.
Nedan visas koden för JDBCTest.java:
// You need to import the java.sql package to use JDBC
import java.sql.*;
public class JDBCTest {
public static void main ( String[] args ) {
try{
int userId= login("olle","olle");
System.out.println("User id= "+userId);
}catch(Exception e){
e.printStackTrace();
}
}
public static int login(String username, String pw) throws SQLException,ArrayStoreException {
System.out.println(" 1. Load the MySQL JDBC driver");
DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());
System.out.println(" 2. Get the connection.");
Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost/gnomeshop?user=gnomeshop&password=gnomeshop" );
System.out.println(" 3. Create a statement.");
Statement stmt = conn.createStatement ();
System.out.println(" 4. Do the SQL.");
String sql= "SELECT USER_ID FROM USER WHERE IS_BANNED='N' AND USER_NAME='"+username+"' AND PW='"+ pw +"'";
ResultSet r = stmt.executeQuery ( sql );
int userId=0;
if (r.next ()){
System.out.println(" 5. Success.");
userId = r.getInt(1);
}else{
System.out.println(" 5. Not allowed to login.");
userId= -1;
}
System.out.println(" 6. Close the result set, the statement and connect.");
r.close();
stmt.close();
conn.close();
return userId;
}
}
2. JDBC-drivare
JDBC är en generell teknik som kan användas för att koppla upp sig mot vilken databas som helst. Det krävs dock att du har en JDBC-drivare (JDBC driver) installerad för den aktuella databasen, alltså, om du vill köra mot MySQL måste du ladda hem och installera en JDBC-drivare specifik för MySQL.
Du kan läsa mer om vilka drivare som finns på:
Följande bild illustrerar arkitekturen för JDBC:
Bilden visar hur:
3. Anslutning och Datakälla
När man ansluter till en databas med DriverManager.getConnection() anger man en datakälla (data source) för att visa vilken databas man vill ansluta till. En datakälla ser ut på följande sätt:
Delarna har följande innebörd: