Databashantering med JDBC
Databaser ligger långt utanför den här delkursen, den
som har tänkt använda det i projektet får lära sig på
egen hand.. Den här sidan innehåller bara ett par mycket korta
exempel för att komma igång med databaskopplingar från Javaprogram.
Det API som används heter JDBC och finns i paketet java.sql.
En bra genomgång av JDBC finns i JavaTutorial, se http://java.sun.com/docs/books/tutorial/jdbc/,
ännu mer information finns på http://java.sun.com/products/jdk/1.4/docs/guide/jdbc/.
JDBC:s hemsida hittar du på http://java.sun.com/products/jdbc/.
För att komma åt en databas behöver du en JDBC-drivrutin,
vilka som finns ser du på http://industry.java.sun.com/products/jdbc/drivers/.
I brist på bättre kan du som sista utväg använda den
JDBC-ODBC-brygga (se http://java.sun.com/products/jdk/1.4/docs/guide/jdbc/getstart/bridge.doc.html)
som ingår i JDK. Använder du den måste du först definiera
en länk till din databas i ODBC. Jag gjorde det (i Windows98) med ODBC-verktyget
i kontrollpanelen. När det är gjort krävs nedanstående
kodrader för att komma åt databasen via JDBC.
- Ladda den klass du ska använda som drivrutin. för JDBC-ODBC-bryggan
görs det med raden Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Denna rad gör att javamotorn laddar klassen sun.jdbc.odbc.JdbcOdbcDriver,
vilken automatiskt kommer att registrera sig hos DriverManager
som administrerar databasdrivrutiner.
- Skapa en Connection till databasen med raden
Connection con = DriverManager.getConnection(url, "username", "password");
DriverManager kommer att göra denna koppling med hjälp
av någon av de registrerade drivrutinerna. I det här fallet blir
det den klass vi skapade i förra punkten. username är
användarnamnet och password är lösenordet för
databasen. url är en url som beskriver databasen. För
JDBC-ODBC-bryggan blir det jdbc:odbc:<data-source-name>, där data-source-name
är namnet på ODBC-länken till databasen.
- Skapa ett Statement-objekt med raden
stmt = con.createStatement();
Det är detta objekt som ska utföra SQL-kommandon. - Utför
SQL-kommandon. Statement har bland annat metoderna executeUpdate()
vilken utför kommandon som modifierar databasen och executeQuery()
vilken läser databasens innehåll. Följande rad utför
sökningen som finns i Stringen query.
ResultSet rs = stmt.executeQuery(query);
- Metoden executeQuery() returnerar ett ResultSet
vilket innehåller resultatet av sökningen och information om hur
den gick. Följande kodrader läser innehållet i ett ResulSetet
rs rad för rad och skriver det på System.out.
while (rs.next()) {
String s = rs.getString("COF_NAME");
float f = rs.getFloat("PRICE");
System.out.println(s + " " + f);
}
Här kommer dels ett program som skapar en tabell, CreateCoffees.java, dels ett som skriver till
och läser från tabellen, InsertCoffees.java.
Dessa program förutsätter att det redan finns en databas med en
ODBC-länk vid namn CafeJava.