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"部分就像礼貌地敲敲门——它在尝试创建表之前检查表是否已经存在。

插入操作

现在让我们向表中添加一些数据。这就好比填写我们之前创建的电子表格。

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()方法来填充它们。这就像填写句子中的空白!

查询操作

既然我们已经添加了一些数据,那就让我们检索它们吧。这就好比从我们的电子表格中读取。

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

这段代码检索我们students表中的所有数据并打印出来。while循环就像逐行浏览我们的电子表格。

更新操作

有时我们需要更改表中已有的数据。让我们更新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。这就好比在电子表格中擦除一个单元格并写下新值。

删除操作

最后,让我们学习如何从表中删除数据。也许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());
}
}
}

这段代码从我们的students表中删除了Bob。这就好比从电子表格中擦除整行。

至此,你已经学会了在Java中使用SQLite的基础知识。记住,熟能生巧,所以不要害怕用这些示例进行实验。在你意识到之前,你将能够创建复杂的数据库应用程序!

以下是我们使用的主要方法的快速参考表:

方法 描述
DriverManager.getConnection(url) 建立到数据库的连接
Connection.createStatement() 创建一个用于执行SQL的Statement对象
Connection.prepareStatement(sql) 创建一个用于执行参数化SQL的PreparedStatement
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