JAVA Tutorial #42

Java MySQL Tabellen erstellen

2021-03-27 | credits: ©PUNTOSTUDIOFOTO Lda

Overview

Im vorherigen Kapitel haben wir eine MySQL-Tabelle mithilfe von phpMyAdmin erstellt. Wollen wir jedoch aus unserem Java-Programm heraus Tabellen erstellen, können wir nicht auf phpMyAdmin zurückgreifen, sondern müssen selbstständig coden. Wir zeigen dir in diesem Tutorial, wie das geht. 

// Schnelles Code Beispiel
String sql = "CREATE TABLE tabelle (id INTEGER, name VARCHAR(20), betrag DECIMAL(6,2));";
try {
    Statement stm = con.createStatement();
    stm.execute(sql);
} catch (SQLException e) {
    System.out.println(e);
}

Eine MySQL-Tabelle erstellen

Wir haben zu Beginn unserer MySQL-Tutorial-Reihe bereits gesehen, wie wir eine MySQL-Tabelle mithilfe von phpMyAdmin erstellen. 

phpMyAdmin ist ein klasse Tool, das uns die Arbeit mit MySQL-Datenbanken enorm erleichtert. Wollen wir jedoch aus unserem Java-Programm heraus Tabellen erstellen, können wir nicht auf phpMyAdmin zurückgreifen, sondern müssen selbstständig coden. 

Den SQL-String zum Erstellen einer MySQL-Tabelle bauen so zusammen:

Infografik Java MySQL Tabelle erstellen

Hinter den Schlüsselwörtern CREATE TABLE folgt der Name der neu zu erstellenden Tabelle. Anschließend werden in runden Klammern die Bezeichnungen der Spalten mit den dazugehöhrenden Datentypen kommasepariert aufgelistet.

Ein konkretes Beispiel sehen wir hier:

static Connection con;

public static void main(String[] args) {

    /*
    Datenbankverbindung herstellen...
    */

    String sql =
    "CREATE TABLE meine_tabelle (id INTEGER, name VARCHAR(20), betrag DECIMAL(6,2));";

    try {
        Statement stm = con.createStatement();
        stm.execute(sql);
    } catch (SQLException e) {
        System.out.println(e);
    }

}

Der SQL-String wird in Zeile 9-10 zusammengebaut und als Statement in Zeile 14 an die Datenbank geschickt. 

Dort wird eine Tabelle namens meine_tabelle mit den Spalten id, name und betrag für Werte mit unterschiedlichen Datentypen erstellt. 

Sollte die Syntax aus des SQL-Strings fehlerhaft sein oder die Tabelle bereits existieren, wird eine SQLException geworfen, die dann durch Zeile 16 am Bildschirm ausgeben wird.

Datentypen

Zum Erstellen einer Tabelle müssen wir also immer auch über die Datentypen der einzelnen Spalten Bescheid wissen. Wir können hier kein vollständiges MySQL-Tutorial geben, aber folgende Datentypen solltet du für den Anfang auf jeden Fall kennen: 

Datentyp Zweck Beispiel
INTEGER Ganzzahlen id INTEGER
DECIMAL(a,b) Dezimalzahlen preis DECIMAL(7,2)
VARCHAR(x) Zeichenkette mit Beschränkung (x) name VARCHAR(30)
TEXT Längere Zeichenketten beschreibung TEXT
BOOLEAN boolesche Datenwerte verfuegbar BOOLEAN
DATE Werte für Datum geburtsdatum DATE

SHOW COLUMNS FROM

Um die Struktur einer angelegten Tabelle in Java angezeigt zu bekommen, ist die SQL-Abfrage SHOW COLUMNS FROM sehr praktisch:

String sql = "SHOW COLUMNS FROM tabelle";

Auf unser Beispiel angewandt sieht der vollständige Code dazu so aus:

try {
    Statement stm = con.createStatement();
    String abfrage = "SHOW COLUMNS FROM meine_tabelle";
    ResultSet rs = stm.executeQuery(abfrage);

    while(rs.next()){
        System.out.println(rs.getString(1) + " " +
                           rs.getString(2));
    }
} catch (SQLException e) {
    e.printStackTrace();
}

Das Ergebnis der SQL-Abfrage wird in einem Objekt vom Typ ResultSet gespeichert. Diese werden dann mit der while-Schleife und der Methode rs.next() zeilenweise ausgelesen: 

Als Ergebnis sehen wir alle Spalten mit den dazugehörigen Datentypen angezeigt: 

id int(11)
name varchar(20)
betrag decimal(6,2)

Datentypen einfügen und anzeigen

Fügen wir nun einen Datensatz in die oben erstellte Tabelle meine_tabelle ein:

// Datensatz einfügen
String insert = "INSERT INTO meine_tabelle (id,name, betrag) VALUES (1, 'iPhone', 899.9)";
try {
    Statement stm = con.createStatement();
    stm.execute(insert);
} catch (SQLException e) {
    e.printStackTrace();
}

Mehr über das Einsetzen, Bearbeiten und Löschen von MySQL-Datensätzen mit Java kannst du hier nachlesen. 

Die Ausgabe auf der Konsole aller Datensätze der Tabelle geht dann so: 

try {
Statement stm = con.createStatement();
String abfrage = "SELECT * FROM meine_tabelle";
ResultSet rs = stm.executeQuery(abfrage);

while(rs.next()){
    System.out.println(rs.getString(1) + " " +
            rs.getString(2) + " " +
            rs.getString(3));
}
} catch (SQLException e) {
e.printStackTrace();
}

Mehr über das Auslesen von MySQL-Datensätzen in Java erfährst du hier.

Werbung

Java lernen

Werde zum Java Profi!

PHP Lernen

Lerne serverbasierte Programmierung

JavaScript lernen

Skille dein Webcoding

FALCONBYTE.NET

Handmade with 🖤️

© 2018-2023 Stefan E. Heller

Impressum | Datenschutz | Changelog

Falconbyte Youtube Falconbyte GitHub facebook programmieren lernen twitter programmieren lernen discord programmieren lernen