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

Universität Augsburg, Institut für Informatik WS 2011/2012 Prof. Dr. W. Kießling 09. Dez Dr. M. Endres, Dr. S. Mandl, F. Wenzel Lösungsblatt 6

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)

Kapitel DB:VI (Fortsetzung)

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

Datenbanken SQL JDBC. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 21

vs. Fehler zur Übersetzungszeit

Client/Server-Programmierung

Datenbank und Informationssysteme

Musterlösung Übungsblatt 11

MySQL mit MyLinux. 2/2003 Java unter Linux

Webbasierte Informationssysteme

Webbasierte Informationssysteme

1a) SQL Stored Procedure via IDs

JDBC. Allgemeines ODBC. java.sql. Beispiele

Datenbank Anbindung. Arthur Zaczek

Datenbankentwurf & Datenbankzugriff mit JDBC. Georg Köster Sven Wagner-Boysen

Java Database Connectivity-API (JDBC)

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

Datenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape. 6. Übung

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 mit MyLinux. 2/2003 Java unter Linux

Einführung in JDBC. IFIS Universität zu Lübeck

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

Datenbanken SQL-Grundlagen JDBC SQL-Constraints. Programmieren II. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

Datenbank und Tabelle mit SQL erstellen

Java Database Connectivity. Gracin Denis, IB 4 C

Datenbanksysteme I Datenbankprogrammierung Felix Naumann

Ho Ngoc Duc IFIS - Universität zu Lübeck

11 Anwendungsprogrammierung

Datenbank Anbindung. Arthur Zaczek. Nov 2014

Grundlagen der Informatik 2

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

MySQL, Java und einiges mehr

JDBC Datenzugriff aus Java ETIS SS04

Kapitel DB:VI (Fortsetzung)

Tag 5 Inhaltsverzeichnis

Wie kommen die Befehle zum DBMS

Tag 5 Inhaltsverzeichnis

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

Kapitel 11: Anwendungsentwicklung

Kapitel 11: Anwendungsentwicklung

Datenbanksysteme I Übung: JDBC. Jana Bauckmann

Multimedia im Netz Wintersemester 2013/14. Übung 02 (Hauptfach)

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

Kapitel 11: Anwendungsentwicklung

Datenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung

Internet-Datenbanken

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

Internet-Datenbanken. Grundlagen des WWW. Web-Anbindung von Datenbanken XML HTML HTTP. Servlets JSP JDBC

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.

Hauptschritte einer JDBC-App

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

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

Teil 2-7. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Ü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

Exercises for the course Databases and Information Systems I WS 2006/2007 Special exercise JDBC

Praktische SQL-Befehle 2

SQL, MySQL und FileMaker

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock

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()