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!
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. ?
- Lade den SQLite JDBC-Treiber von hier herunter.
- 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