Java: MySQL-Anbindung mit JDBC.

Ähnliche Dokumente
Willkommen. Datenbanken und Anbindung

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Oracle & Java HOW TO

Java Database Connectivity-API (JDBC)

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

RELATIONONALE DATENBANKEN MIT JDBC

Datenbankzugriff mit JDBC

JDBC. Java DataBase Connectivity

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008

Vorlesung Informatik II

Java Database Connectivity-API (JDBC)

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren

vs. Fehler zur Übersetzungszeit

Datenbank und Informationssysteme

Musterlösung Übungsblatt 11

MySQL mit MyLinux. 2/2003 Java unter Linux

Webbasierte Informationssysteme

JDBC. Allgemeines ODBC. java.sql. Beispiele

Java Database Connectivity-API (JDBC)

3. Datenbankzugriff (JDBC) Grundlagen der Programmierung II (Java)

Oracle: Abstrakte Datentypen:

Client/Server-Programmierung

Übersicht der wichtigsten MySQL-Befehle

PHP- Umgang mit Datenbanken (1)

SQL Tutorium Documentation

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Datenbank und Tabelle mit SQL erstellen

Java Database Connectivity. Gracin Denis, IB 4 C

Datenbanksysteme I Datenbankprogrammierung Felix Naumann

11 Anwendungsprogrammierung

Datenbank Anbindung. Arthur Zaczek. Nov 2014

Grundlagen der Informatik 2

Java und Datenbanksysteme Datenbankanbindung mit JDBC

MySQL, Java und einiges mehr

JDBC Datenzugriff aus Java ETIS SS04

Kapitel DB:VI (Fortsetzung)

Wie kommen die Befehle zum DBMS

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme I Übung: JDBC. Jana Bauckmann

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Wie kommen die Befehle zum DBMS

JSP, Tomcat, JDBC. Agenda. Übung Informationsintegration JSP & Tomcat JDBC. l Syntax. l Implizite Objekte. l Direktiven

Praktikum Datenbanksysteme

Labor 3 - Datenbank mit MySQL

Grundlagen der Informatik 2

Die Datenbank und der Strukturentwurf wurden vorher mit phpmyadmin erzeugt.

Klausur Datenbanken II

Beispiel: DB-Mock (1/7)

MySQL, phpmyadmin & SQL. Kurzübersicht

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011.

FileMaker und Java...und es öffnen sich neue Welten!

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock

Modifikation der Datenbank

A Datenbanken. A.1 Firebird. A.1.1 Installation des Servers. A.1.2 Installation der Beispieldatenbanken. Datenbanken 1

Praktische SQL-Befehle 2

SQL, MySQL und FileMaker

Hauptschritte einer JDBC-App

Transkript:

Java: MySQL-Anbindung mit JDBC

Vorarbeiten Wir brauchen: - MySQL-Server - JDBC-Treiber - (Import java.sql.*)

Vorarbeiten MySQL-Server in unserem Falle: WAMP (= Apache) (runterladen, installieren, starten)

Vorarbeiten JDBC (Java Database Connectivity)-Treiber erhältlich hier: www.mysql.de/downloads/connector/j/ (runterladen, entpacken)

Vorarbeiten - JDBC-Treiber in die Bibliothek importieren: JAR-Verzeichnis auswählen

Vorarbeiten - java.sql.* importieren am besten von Hand; automatischer Import durch IDE (Netbeans, Eclipse) kann nerven.

Verbindung zur DB herstellen KURZFASSUNG private Connection verbindung; // Objekt der Klasse Connection verbindung = DriverManager.getConnection (url, username, passwort); // DB-Daten (Tabellenname, DB-Server... für url) // Zugangsdaten (Parameter für Methode getconnection)

Verbindung zur DB herstellen Wir brauchen: 1) Objekt der Klasse Connection als Attribut/Instanzvariable: private Connection verbindung = null;

Verbindung zur DB herstellen Wir brauchen: 2) Verbindungsdaten als Attribute/Instanzvariablen oder Parameter an den Konstruktor: private String dbname = "Datenbankname"; private String server = "localhost:3306"; private String user = "root"; private String passwort = ""; 3306 = Port für Windows Mac/MAMP: 8889, PW: "root"

Verbindung zur DB herstellen Wir brauchen: 3) JDBC-Verbindungsurl Format: jdbc:mysql://localhost:3306/artikel Zusammenbauen mit: String url = "jdbc:mysql://"+server+"/"+dbname;

Verbindung zur DB herstellen Wir brauchen: 4) Java-Befehl, um Verbindung herzustellen this.verbindung = DriverManager.getConnection(url, user, pass); Achtung: Diese Zuweisung lässt sich NICHT bei der Deklaration der Attribute realisieren, weil sie mit einem try-catch-block umgeben werden muss!

Verbindung zur DB herstellen Zusammenfassung: private Connection verbindung = null; private String dbname = "Datenbankname"; private String server = "localhost:3306"; private String user = "root"; private String passwort = ""; String url = "jdbc:mysql://"+server+"/"+dbname; // in einer Methode dann: this.verbindung = DriverManager.getConnection(url, user, passwort);

Verbindung zur DB herstellen Zusammenfassung: private Connection verbindung = null; this.verbindung = DriverManager.getConnection("jdbc:mysql://localhost: 3306/Datenbankname", "root", ""); // statt: private String dbname = "Datenbankname"; private String server = "localhost:3306"; private String user = "root"; private String passwort = ""; verbindung = muss In einer Methode stehen! (nicht bei den Attributen!) Kurzversion String url = "jdbc:mysql://"+server+"/"+dbname; // in einer Methode dann this.verbindung = DriverManager.getConnection(url, user, passwort);

Verbindung zur DB herstellen Achtung: Exceptions abfangen oben aus Platzgründen nicht realisiert Mit IDE-Hilfe: Linke Maustaste auf Fehler-Markierung, "Anweisung mit try-catch umgeben":

Verbindung zur DB herstellen Verbindung gesamt: 1: Objekt Connection 2: Verbindungsdaten 3: Verbindungs-URL 4: Java-Befehl (DriverManager)

Abfragen ausführen Wir brauchen: 1) ein Objekt der Klasse Statement (beinhaltet den MySQL-Code) 2) ein Objekt der Klasse ResultSet (speichert bei SELECT-Abfragen die Ergebnisse) private Statement stmt = null; private ResultSet ergebnismenge = null; // Resultselt nur bei SELECT- Abfrage nötig

Abfragen ausführen Wir brauchen: 1) ein Objekt der Klasse Statement (für Ausfühung des MySQL-Codes) 2) ein Objekt der Klasse ResultSet (speichert bei SELECT-Abfragen die Ergebnisse) private Statement stmt = null; this.stmt = verbindung.createstatement(); private ResultSet rs = null; // nur bei SELECT-Abfrage nötig

Abfragen ausführen Abfragen zur Manipulation der Tabelle: CREATE TABLE, UPDATE, INSERT INTO private Statement abfrage = verbindung.createstatement(); private ResultSet rs = null; String sqlbefehl = "UPDATE bla SET name='urgh';"; this.abfrage.executeupdate(sqlbefehl); executeupdate() für insert, update, delete; executequery() für select execute() gibt TRUE zurück, wenn Ergebnis = ResultSet, ansonsten FALSE

Abfragen ausführen SELECT-Abfragen... ausführen private Statement abfrage = verbindung.createstatement(); private ResultSet rs = null; String sqlbefehl = "SELECT * FROM artikel"; this.rs = this.abfrage.executequery(sqlbefehl); Ergebnis der Abfrage wird als "ResultSet" (this.rs) gespeichert.

Abfragen ausführen SELECT-Abfragen... Ergebnisse darstellen String sqlbefehl = "SELECT * FROM artikel"; this.rs = this.abfrage.executequery(sqlbefehl); while (this.rs.next()){ // so lange rs.next() true ist, gibt es noch // weitere Datensätze anzuzeigen int id = this.rs.getint("id"); String name = this.rs.getstring("name"); System.out.println("ID: " + id + ", Name:" + name); } "id" und "name" = Feldnamen der befragten DB-Tabelle

Nützliche Methoden String sqlbefehl = "SELECT * FROM artikel"; this.rs = this.abfrage.executequery(sqlbefehl); this.rs.beforefirst(); // Satzzeiger vor die erste Zeile setzen this.rs.last(); // Springt zum letzten Datensatz this.rs.absolute(int); // Springt zum angegebenen Datensatz. Bei negativem Wert wird vom letzten Datensatz rückwärts gezählt. this.rs.relative(int); // Springt vom aktuellen Datensatz aus um die angegebene Zahl an Datensätzen weiter. Achtung: Es MUSS einen aktuellen Datensatz geben; nach beforefirst() gibt es keinen ausgewählten Datensatz!

DB-Verbindung schließen verbindung = DriverManager.getConnection(url, user, pass); Statement s = v.getverbindung().createstatement(); // DB-Handling... //... verbindung.close(); s.close(); // Beim Schließen des Statement-Objekts wird das ResultSet ebenfalls geschlossen Lesenswert dazu: http://blog.shinetech.com/2007/08/04/how-to-close-jdbc-resources-properly-every-time/

Aufgabe 1) Versuchen Sie mittels Java eine KLEINE Tabelle in Ihrer DB zu erstellen (3 Attribute). Fügen Sie (ebenfalls über Java) ein paar Datensätze ein. 2) Führen Sie einige SELECT-Abfragen aus. Die Namen der Tabellenspalten kennen Sie ja von Aufgabe 1. TIPP: Schreiben Sie Ihr Programm gleich so, dass Sie die Klasse(n) bzw. Methoden später wieder verwenden können, z.b. dbverbindungaufbauen(user:string, pass:string, dbname:string, dbserver:string) dbmanipulieren(sqlbefehl:string) dbselectabfrageausfuehren(sqlbefehl:string) dbschliessen()