Hallo allerseits,
1)
um ein bißchen mit Datenbanken zu experimentieren, habe ich zuerst mit Java auf eine MS-ACCESS-Datenbank zugegriffen.
Das Programm unten funktioniert einwandfrei, ohne dass ich dabei Treiber usw. installieren, konfigurieren oder ähnliches machen musste.
2)
Nun will ich den Datenbankzugriff mit Java auf eine MySQL-Datenbank realisieren.
Leider habe ich im Internet nicht gefunden, wie das realisiert wird.
3) Deswegen meine Frage:
Was muss ich unten in meinem Quellcode abändern, damit der Zugriff funktioniert?
Konkret:
Wie müssen welche Zeilen durch was ersetzt werden?
mfg
Ernst
1)
um ein bißchen mit Datenbanken zu experimentieren, habe ich zuerst mit Java auf eine MS-ACCESS-Datenbank zugegriffen.
Das Programm unten funktioniert einwandfrei, ohne dass ich dabei Treiber usw. installieren, konfigurieren oder ähnliches machen musste.
2)
Nun will ich den Datenbankzugriff mit Java auf eine MySQL-Datenbank realisieren.
Leider habe ich im Internet nicht gefunden, wie das realisiert wird.
3) Deswegen meine Frage:
Was muss ich unten in meinem Quellcode abändern, damit der Zugriff funktioniert?
Konkret:
Wie müssen welche Zeilen durch was ersetzt werden?
mfg
Ernst
Java:
package db10;
import java.sql.*;
public class MainDb10 {
public static void main(String[] args) {
String datenQuelle;
Connection demoDB1Connection;
Statement StatementSQL;
ResultSet resultSet;
String AbfrageSQL;
Boolean b;
String nr;
String bezeichnung;
int bestand;
double preis;
try{
// Lädt die Klasse mit dem Namen "sun.jdbc.odbc.JdbcOdbcDriver"
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// Zugriff auf die DB (Deklaration und Wertzuweisung) wird über
// eine Datenquelle gemacht.
// eine Datenquelle ist wie folgt aufgebaut:
// jdbc:Subprotokoll:Datenquellennamen
// Für ODBC-Datenquellen ist das Subprotokoll obcd
datenQuelle = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Daten_Austausch/MEINE_SKRIPTE/ProgJava/22_Datenbank/PROG/db10/demoDB1.mdb";
// obenstehender Pfad muss jeweils angepasst werden!
// getConnection(...) liefert die Verbindung zur Datenbank zurück.
// Dazu wird benötigt:
// eine Datenquelle, einen User, ein Passwort
demoDB1Connection = DriverManager.getConnection(datenQuelle,"","");
// Um Anfragen an die Datenbank stellen zu können benötigt man ein
// Objekt der Klasse Statement
StatementSQL = demoDB1Connection.createStatement();
// Liefere von allen Datensätzen mit Nr = 1000 die
// Nr, Bezeichnung, Bestand, Preis.
// Wichtig: Zeichenketten müssen in SQL-Befehlen in einfachen
// Hochkommata eingeschlossen werden
AbfrageSQL = "SELECT Nr, Bezeichnung, Bestand, Preis FROM Artikel ";
AbfrageSQL = AbfrageSQL + "WHERE Nr = '1000';";
// AbfrageSQL ist also:
// SELECT Nr, Bezeichnung, Bestand, Preis FROM Artikel WHERE Nr = '1000';
System.out.println("AbfrageSQL="+AbfrageSQL);
// Das Ergebnis der Abfrage befindet sich in resultSet.
// Dieses Ergebnis kann man sich als Tabelle vorstellen, in der
// die gefundenen Datensätze als Zeilen dargestellt werden.
// Direkt nachdem das Ergebnis in resultSet abgeliefert wird,
// steht der "Zeilenzeiger" _vor_ der ersten gefundenen Zeile.
// (mit next() wird der Zeilenzeiger dann auf die erste gefundene
// Zeile positioniert).
resultSet = StatementSQL.executeQuery(AbfrageSQL);
// Bei jedem Aufruf von next() wird der Zeilenzeiger um eine Zeile
// nach unten bewegt. Bei ersten Aufruf von next() zeigt der
// Zeilenzeiger also auf die erste gefundene Zeile.
// Gibt es keine gefundene Zeile, liefert next() den Wert
//false zurück.
b = resultSet.next();
if(b==true){
nr = resultSet.getString("Nr");
bezeichnung = resultSet.getString("Bezeichnung");
bestand = resultSet.getInt("Bestand");
preis = resultSet.getDouble("Preis");
System.out.println("nr="+nr);
System.out.println("bezeichnung="+bezeichnung);
System.out.println("bestand="+bestand);
System.out.println("Preis="+preis);
}
else{
System.out.println("Datensatz wurde nicht gefunden");
}
resultSet.close();
StatementSQL.close();
demoDB1Connection.close();
}
catch (ClassNotFoundException fehler){
System.out.println("Treiber existiert nicht");
fehler.printStackTrace();
}
catch (SQLException fehler){
System.out.println("DB konnte nicht geöffnet werden");
fehler.printStackTrace();
}
}
}