SQLite - Java: Ein Anfängerguide

Hallo da draußen, zukünftiger Codingsuperstar! ? Willkommen in der wundervollen Welt von SQLite und Java. Ich bin sehr erfreut, dass ich dein Guide auf dieser aufregenden Reise sein darf. Als jemand, der seit Jahren Informatik unterrichtet, kann ich dir versichern, dass du am Ende dieses Tutorials erstaunt sein wirst, was du alles erreichen kannst. Also, tauchen wir ein!

SQLite - Java

Installation

Bevor wir mit dem Zauber der Datenbanken beginnen, müssen wir unsere Werkzeuge einrichten. Denke daran wie das Vorbereiten deiner Küche vor dem Kochen eines leckeren Essens. ?

  1. Lade den SQLite JDBC-Treiber von hier herunter.
  2. Füge die heruntergeladene JAR-Datei dem Classpath deines Java-Projekts hinzu.

Hier ist ein kleiner Code-Schnippte, um zu überprüfen, ob alles korrekt eingerichtet ist:

import java.sql.*;

public class SQLiteTest {
public static void main(String[] args) {
try {
Class.forName("org.sqlite.JDBC");
System.out.println("SQLite JDBC-Treiber erfolgreich geladen!");
} catch (ClassNotFoundException e) {
System.out.println("Fehler: SQLite JDBC-Treiber nicht gefunden.");
e.printStackTrace();
}
}
}

Wenn du "SQLite JDBC-Treiber erfolgreich geladen!" siehst, wenn du dies ausführst, bist du bereit!

Verbindung zur Datenbank herstellen

Jetzt, wo wir unsere Zutaten bereit haben, lassen uns anfangen zu kochen! ?️ Eine Verbindung zur Datenbank herzustellen, ist wie das Öffnen des Kühlschranks - es ist der erste Schritt, um etwas Großartiges zu schaffen.

import java.sql.*;

public class SQLiteConnect {
public static void main(String[] args) {
Connection conn = null;
try {
String url = "jdbc:sqlite:test.db";
conn = DriverManager.getConnection(url);
System.out.println("Verbindung zu SQLite erfolgreich hergestellt.");
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
}
}

Dieser Code erstellt eine Verbindung zu einer SQLite-Datenbank namens "test.db". Wenn die Datei nicht existiert, erstellt SQLite sie für dich. Ist das nicht toll?

Eine Tabelle erstellen

Jetzt, wo wir verbunden sind, lassen uns eine Tabelle erstellen. Denke an eine Tabelle als eine Tabelle in deiner Datenbank. Wir werden eine einfache "students" Tabelle erstellen.

import java.sql.*;

public class CreateTable {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";

String sql = "CREATE TABLE IF NOT EXISTS students (" +
"id INTEGER PRIMARY KEY," +
"name TEXT NOT NULL," +
"grade INTEGER" +
");";

try (Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement()) {
stmt.execute(sql);
System.out.println("Tabelle erfolgreich erstellt!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Dieser Code erstellt eine Tabelle namens "students" mit drei Spalten: id, name und grade. Der Teil "IF NOT EXISTS" ist wie ein höfliches Klopfen an der Tür - es überprüft, ob die Tabelle bereits existiert, bevor es versucht, sie zu erstellen.

INSERT-Operation

Jetzt fügen wir einige Daten in unsere Tabelle ein. Das ist wie das Ausfüllen der Tabelle, die wir earlier erstellt haben.

import java.sql.*;

public class InsertData {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";
String sql = "INSERT INTO students(name,grade) VALUES(?,?)";

try (Connection conn = DriverManager.getConnection(url);
PreparedStatement pstmt = conn.prepareStatement(sql)) {

pstmt.setString(1, "Alice");
pstmt.setInt(2, 85);
pstmt.executeUpdate();

pstmt.setString(1, "Bob");
pstmt.setInt(2, 90);
pstmt.executeUpdate();

System.out.println("Daten erfolgreich eingefügt!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Dieser Code fügt zwei Schüler in unsere Tabelle ein. Die "?" in der SQL-Anweisung sind Platzhalter, die wir mit setString() und setInt() füllen. Es ist wie das Ausfüllen von Lücken in einem Satz!

SELECT-Operation

Jetzt, wo wir einige Daten hinzugefügt haben, lassen uns sie abrufen. Das ist wie das Lesen aus unserer Tabelle.

import java.sql.*;

public class SelectData {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";
String sql = "SELECT id, name, grade FROM students";

try (Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql)) {

while (rs.next()) {
System.out.println(rs.getInt("id") + "\t" +
rs.getString("name") + "\t" +
rs.getInt("grade"));
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Dieser Code ruft alle Daten aus unserer "students" Tabelle ab und gibt sie aus. Die while-Schleife ist wie das Durchgehen jeder Zeile unserer Tabelle nacheinander.

UPDATE-Operation

Manchmal müssen wir Daten in unserer Tabelle ändern. Lassen uns Alice's Note aktualisieren.

import java.sql.*;

public class UpdateData {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";
String sql = "UPDATE students SET grade = ? WHERE name = ?";

try (Connection conn = DriverManager.getConnection(url);
PreparedStatement pstmt = conn.prepareStatement(sql)) {

pstmt.setInt(1, 95);
pstmt.setString(2, "Alice");
pstmt.executeUpdate();
System.out.println("Daten erfolgreich aktualisiert!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Dieser Code aktualisiert Alice's Note auf 95. Es ist wie das Radieren einer Zelle in unserer Tabelle und das Schreiben eines neuen Wertes.

DELETE-Operation

Schließlich lernen wir, wie man Daten aus unserer Tabelle entfernt. Vielleicht hat Bob beschlossen, zu einer anderen Schule zu wechseln.

import java.sql.*;

public class DeleteData {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";
String sql = "DELETE FROM students WHERE name = ?";

try (Connection conn = DriverManager.getConnection(url);
PreparedStatement pstmt = conn.prepareStatement(sql)) {

pstmt.setString(1, "Bob");
pstmt.executeUpdate();
System.out.println("Daten erfolgreich gelöscht!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Dieser Code entfernt Bob aus unserer "students" Tabelle. Es ist wie das Radieren einer ganzen Zeile aus unserer Tabelle.

Und das war's! Du hast gerade die Grundlagen der Arbeit mit SQLite in Java gelernt. Denke daran, dass Übung den Meister macht, also habe keine Angst, mit diesen Beispielen herumzuspielen. Bevor du es weißt, wirst du komplexe Datenbankanwendungen erstellen!

Hier ist eine schnelle Referenztabelle der Hauptmethoden, die wir verwendet haben:

Methode Beschreibung
DriverManager.getConnection(url) Stellt eine Verbindung zur Datenbank her
Connection.createStatement() Erstellt ein Statement-Objekt zum Ausführen von SQL
Connection.prepareStatement(sql) Erstellt ein PreparedStatement für das Ausführen von parameterisierten SQL
Statement.execute(sql) Führt eine SQL-Anweisung aus, die kein Ergebnis zurückgibt
Statement.executeQuery(sql) Führt eine SQL-Abfrage aus und gibt ein ResultSet zurück
PreparedStatement.setString(index, value) Setzt einen String-Parameter in einem PreparedStatement
PreparedStatement.setInt(index, value) Setzt einen int-Parameter in einem PreparedStatement
PreparedStatement.executeUpdate() Führt eine INSERT-, UPDATE- oder DELETE-Anweisung aus
ResultSet.next() Wechselt zur nächsten Zeile in einem ResultSet
ResultSet.getInt(columnName) Holt einen int-Wert aus der aktuellen Zeile
ResultSet.getString(columnName) Holt einen String-Wert aus der aktuellen Zeile

Weiterschreiben, weiterlernen und vor allem: Spaß haben! ??

Credits: Image by storyset