SQLite - Java:初學者指南
你好,未來的編程超級巨星!? 權迎來到SQLite和Java的精彩世界。我很興奮能成為你這次興奮旅程的導航者。作為一個教了多年計算機科學的人,我可以向你保證,在這個教程結束時,你將對你能夠達成的成就感到驚奇。那麼,讓我們開始吧!
安裝
在我們開始創造數據庫魔法之前,我們需要設定我們的工具。把它想像成在烹飪美味食物之前準備你的廚房。?
- 首先,從這裡下載SQLite JDBC驅動。
- 將下載的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