SQLite - Java:初學者指南

你好,未來的編程超級巨星!? 權迎來到SQLite和Java的精彩世界。我很興奮能成為你這次興奮旅程的導航者。作為一個教了多年計算機科學的人,我可以向你保證,在這個教程結束時,你將對你能夠達成的成就感到驚奇。那麼,讓我們開始吧!

SQLite - Java

安裝

在我們開始創造數據庫魔法之前,我們需要設定我們的工具。把它想像成在烹飪美味食物之前準備你的廚房。?

  1. 首先,從這裡下載SQLite JDBC驅動。
  2. 將下載的JAR文件添加到你的Java專案的類路徑中。

下面是一小段代碼,用來檢查一切是否正確設置:

import java.sql.*;

public class SQLiteTest {
public static void main(String[] args) {
try {
Class.forName("org.sqlite.JDBC");
System.out.println("SQLite JDBC驅動成功加載!");
} catch (ClassNotFoundException e) {
System.out.println("錯誤:找不到SQLite JDBC驅動。");
e.printStackTrace();
}
}
}

如果你在運行這段代碼時看到"SQLite JDBC驅動成功加載!",那麼你就一切都準備好了!

連接到數據庫

現在我們已經準備好食材,讓我們開始烹飪吧!?️ 連接到數據庫就像打開冰箱一樣 - 是創造令人驚奇事物的第一步。

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("已成功建立到SQLite的連接。");
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
}
}

這段代碼創建了一個到名為"test.db"的SQLite數據庫的連接。如果文件不存在,SQLite會為你創建它。這不是很棒嗎?

創建一個表

現在我們已經連接上了,讓我們創建一個表。把表想像成數據庫中的一個電子表格。我們將創建一個簡單的"students"表。

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("表成功創建!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

這段代碼創建了一個名為"students"的表,其中有三個列:id,name和grade。"IF NOT EXISTS"部分就像敲門一樣禮貌 - 它會在嘗試創建之前檢查表是否存在。

INSERT 操作

現在我們將一些數據添加到我們的表中。這就像填寫我們剛創建的電子表格。

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("數據成功插入!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

這段代碼將兩個學生插入我們的表中。SQL語句中的"?"是佔位符,我們用setString()setInt()方法填寫它們。這就像填寫句子中的空白!

SELECT 操作

現在我們已經添加了一些數據,讓我們來检索它。這就像從我們的電子表格中讀取。

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

這段代碼從我們的學生表中检索所有數據並打印出來。while循環就像逐行瀏覽我們的電子表格。

UPDATE 操作

有時我們需要更改表中已經存在的數據。讓我們更新Alice的成績。

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("數據成功更新!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

這段代碼將Alice的成績更新為95。這就像在我們的電子表格中擦除一個單元格並寫入一個新值。

DELETE 操作

最後,讓我們學習如何從我們的表中刪除數據。也許Bob決定轉學到另一所學校。

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("數據成功刪除!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

這段代碼從我們的學生表中刪除了Bob。這就像從我們的電子表格中擦除一行。

至此,你已經學會了在Java中使用SQLite的基本知識。記住,熟能生巧,所以不要害怕用這些例子來實驗。在你意識到之前,你將會創建有複雜數據庫應用程序!

這裡是我們使用的主要方法的快速參考表:

方法 描述
DriverManager.getConnection(url) 建立到數據庫的連接
Connection.createStatement() 創建一個Statement對象用於執行SQL
Connection.prepareStatement(sql) 創建一個PreparedStatement用於執行參數化SQL
Statement.execute(sql) 執行一個不返回結果集的SQL語句
Statement.executeQuery(sql) 執行一個SQL查詢並返回一個ResultSet
PreparedStatement.setString(index, value) 在PreparedStatement中設置一個String參數
PreparedStatement.setInt(index, value) 在PreparedStatement中設置一個int參數
PreparedStatement.executeUpdate() 執行一個INSERT、UPDATE或DELETE語句
ResultSet.next() 移動到ResultSet中的下一行
ResultSet.getInt(columnName) 從當前行獲取一個int值
ResultSet.getString(columnName) 從當前行獲取一個String值

繼續編程,繼續學習,最重要的是,玩得開心!??

Credits: Image by storyset