Jetzt anmelden...

Login
Passwort
Registrieren
27.03.21 1878 Views Kommentare [0] 1 0

credit: ©adobe.stock

JAVA Tutorial #42

Java MySQL Tabellen erstellen

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.

Falconbyte unterstüzen

Betrieb und Pflege von Falconbyte brauchen viel Zeit und Geld. Um dir auch weiterhin hochwertigen Content anbieten zu können, kannst du uns sehr gerne mit einem kleinen "Trinkgeld" unterstützen.

Schnelles Code-Beispiel:

// Tabelle erstellen
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);
}

    Inhaltsverzeichnis

  1. Eine MySQL-Tabelle erstellen
  2. Datentypen
  3. SHOW COLUMNS FROM
  4. Datensätze einfügen
  5. Übungen

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:

Java MySQL Datenbank Tabelle erstellen Infografik

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.

Übungen

einfach

Was wird mit diesem Code auf der Konsole angezeigt?

String sql = "CREATE TABLE computer (id, modell, ram, cpu, festplatte);";
try {
    Statement stm = con.createStatement();
    stm.execute(sql);
    System.out.println("Tabelle erfolgreich erstellt");
} catch (SQLException e) {
    System.out.println(e);
}
Lösung ein-/ausblenden

mittel

Erstellen in eienr Ihrer Datenbanken eine Tabelle namens raketen mit folgenden Spalten (wählen Sie die geeigneten Datentypen selbst aus):

  • id
  • name
  • hoehe_in_m
  • nutzlast
  • erstflug

Geben Sie danach die Tabellenstruktur auf der Konsole aus.

Lösung ein-/ausblenden

Objekte vergleichen

Was ist der Unterschied zwischen == und equals()?

Objektsammlungen

Lernen Sie in diesem Kapitel, wie Sie eine Sammlung von Objekten erstellen können.

Statische Elemente

Statische Variablen und Methoden nutzen

FALCONBYTE.NET

Handmade with 🖤️

© 2018-2021 Stefan E. Heller

Impressum | Datenschutz

Falconbyte GitHub facebook programmieren lernen twitter programmieren lernen discord programmieren lernen