Tutorial Datenbankanbindung Java File

Werbung
Anwendungssysteme
Programmierung mit DBS
Datenbanksysteme
Anbindung mit Java
Name:
Datum:
Klasse:
Blatt Nr.: 1/2
Lfd. Nr.:
Die Anbindung von Java-Programmen an Datenbanken wird durch eine Datenbankschnittstelle in der
Programmiersprache Java realisiert. Diese ist die Java Database Connectivity (JDBC) und ermöglicht eine
einheitliche Schnittstelle für die relationalen Datenbanken unterschiedlichster Hersteller. Zu den Aufgaben von
JDBC gehört es, Datenbankverbindungen aufzubauen und zu verwalten, SQL-Anfragen an die Datenbank
weiterzuleiten und die Ergebnisse in eine für Java nutzbare Form umzuwandeln und dem Programm zur
Verfügung zu stellen. Für jede spezifische Datenbank sind eigene Treiber erforderlich, die die JDBCSpezifikation(API) implementieren. Diese Treiber werden meist vom Hersteller des Datenbanksystems geliefert.
Das heißt, dass jede Datenbank für die der Hersteller ein Treiber geschrieben hat exakt gleich in Java
angesprochen werden kann.1
Programmierung mit JDBC
Klassen und Interfaces der JDBC-Schnittstelle sind im
Paket java.sql enthalten. Der DriverManager ist der Kern
der Verwaltung. Dieser wird benutzt um Verbindungen zu
einer Datenbank aufzubauen. Die Connection
repräsentiert die Verbindung zu einer Datenbank und
kann SQL-Anweisungen ausführen. Die SQLAnweisungen sind in Statements gekapselt und
bekommen nach Ausführung ein Objekt der Klasse
ResultSet zurück.
Abbildung 1: Klassenübersicht JDBC
Tutorial für die Datenbankanbindung
Eine Datenbankanbindung kann immer Fehler auslösen. Daher wird durch
Typischer Ablauf
die JDBC-Schnittstelle im Fehlerfall eine Exception ausgelöst. Diese muss
 Registrierung des JDBCabgefangen werden indem alle Anweisungen, die mit eine solche
Treibers beim Treibermanager
Ausnahme auslösen können in einen s.g. try-catch-Block geschrieben
 Verbindungsaufbau zum
werden.
Datenbanksystem
Java-Beispiel:
…
 Erstellung des Statements
try{
 Ausführung des Statements
//Code der Exceptions auslösen kann
 Abfrage der Ergebnisse
}catch
(Exception e){
 Verarbeitung der Ergebnisse
e.printStackTrace();
 Schließen der Verbindung
}
Treiberregistrierung
String driver = "com.mysql.jdbc.Driver"; //MySQL
Class.forName(driver);2
Mit der statischen Methode Class.forName wird der Treiber automatisch
geladen und steht im DriverManager zur Verfügung um eine Connection zu
erzeugen.
Nutzer in Datenbanksystem anlegen
Treiberübersicht
MySQL
"com.mysql.jdbc.Driver"
Oracle
"oracle.jdbc.driver.OracleDriver"
Mircosoft
"sun.jdbc.odbc.JdbcOdbcDriver"
SQlite
"org.sqlite.JDBC"
Über phpMyAdmin  SQL
CREATE USER 'username'@'localhost' IDENTIFIED BY 'mypass';
Verbindungsaufbau
String url = "jdbc:mysql://localhost/test?";
String user = "username";
String password = "mypass";
...
Connection con; //Objekt welches die Kommunikation durchführt
con = DriverManager.getConnection(url, user, password); //Objekterzeugung
1
2
http://dev.mysql.com/downloads/connector/j/ + https://jaxenter.de/mysql-und-java-jdbc-einrichten-8180
Class.forName(driver).newInstance(); //wird von MySQL empfohlen
©Tenbusch
Anwendungssysteme
Programmierung mit DBS
Datenbanksysteme
Anbindung mit Java
Name:
Datum:
Klasse:
Blatt Nr.: 2/2
Lfd. Nr.:
Einfache Abfragen
Abfragen die ein Ergebnis zurückliefern werden mit der Methode executeQuere() ausgeführt.
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM titel");
//Statement erzeugen
//SQL-Abfrage ausführen
while(rs.next()) {
System.out.println(rs.getString("name"));
}
//solange Ergebniszeilen
//Zelleneintrag ausgeben
con.close();
// Verbindung schließen
DDL & DML-Operationen
SQL-Abfragen, die kein Ergebnis zurückliefern sollen werden mit der Methode executeUpdate(sql) auf
einem Statementobjekt ausgeführt.
Beispiel-Code
import
import
import
import
java.sql.Connection;
java.sql.DriverManager;
java.sql.ResultSet;
java.sql.Statement;
public class Verbindungstest {
public static void main(String[] args) {
try {
// Parameter für Verbindungsaufbau definieren
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost/test?";
String user = "testuser";
String password = "strenggeheim";
// JDBC-Treiber laden
Class.forName(driver);
// Verbindung aufbauen
Connection con;
con = DriverManager.getConnection(url, user, password);
// SQL-Anweisungen ausführen
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM titel");
// Ergebnis abfragen
while (rs.next()) {
System.out.println(rs.getString("name"));
}
// Verbindung schließen
con.close();
} catch (Exception ex) { // Fehler abfangen
ex.printStackTrace();// Fehlermeldung ausgeben
}
}
}
Wichtig! Geht nur wenn




der richtige Benutzer
das richtige Passwort
die Datenbank Test hat eine Tabelle Titel mit einer Spalte Name und Einträge
MySql ist gestartet
©Tenbusch
Herunterladen