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"部分就像礼貌地敲敲门——它在尝试创建表之前检查表是否已经存在。
插入操作
现在让我们向表中添加一些数据。这就好比填写我们之前创建的电子表格。
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