首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[SQLite]掌握SQLite,Java轻松集成数据库操作攻略

发布于 2025-06-23 16:31:36
0
970

SQLite 是一个轻量级的数据库,非常适合嵌入式系统和移动应用。Java 作为一种广泛使用的编程语言,可以轻松与 SQLite 数据库集成。本文将详细介绍如何在 Java 中使用 SQLite,包括...

SQLite 是一个轻量级的数据库,非常适合嵌入式系统和移动应用。Java 作为一种广泛使用的编程语言,可以轻松与 SQLite 数据库集成。本文将详细介绍如何在 Java 中使用 SQLite,包括环境搭建、基本操作和高级技巧。

一、环境搭建

1.1 系统要求

  • 操作系统:Windows、Linux 或 macOS
  • Java 版本:建议使用 Java 8 或更高版本
  • SQLite 版本:建议使用 SQLite 3.31.1 或更高版本

1.2 安装 SQLite

  1. 下载 SQLite 的源代码或预编译的二进制文件。
  2. 解压源代码或复制二进制文件到系统目录。
  3. 在系统环境变量中添加 SQLite 的 bin 目录。

1.3 安装 Java 开发工具包 (JDK)

  1. 下载 JDK 安装包。
  2. 解压安装包到指定目录。
  3. 在系统环境变量中添加 JDK 的 bin 目录。

二、Java 集成 SQLite

2.1 添加依赖

在 Java 项目中添加 SQLite JDBC 驱动的依赖。以下是 Maven 依赖示例:

 org.xerial sqlite-jdbc 3.36.0.3

2.2 连接数据库

使用 Connection 对象连接到 SQLite 数据库。以下是连接示例:

import java.sql.Connection;
import java.sql.DriverManager;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); System.out.println("数据库连接成功!"); } catch (Exception e) { System.out.println("数据库连接失败:" + e.getMessage()); } }
}

2.3 创建表

使用 Statement 对象创建表。以下是创建示例:

import java.sql.Connection;
import java.sql.Statement;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); Statement stmt = conn.createStatement(); String sql = "CREATE TABLE IF NOT EXISTS students (" + "id INTEGER PRIMARY KEY," + "name TEXT NOT NULL," + "age INTEGER)"; stmt.execute(sql); System.out.println("表创建成功!"); } catch (Exception e) { System.out.println("创建表失败:" + e.getMessage()); } }
}

2.4 插入数据

使用 PreparedStatement 对象插入数据。以下是插入示例:

import java.sql.Connection;
import java.sql.PreparedStatement;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); String sql = "INSERT INTO students(name, age) VALUES(?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, "张三"); pstmt.setInt(2, 20); pstmt.executeUpdate(); System.out.println("数据插入成功!"); } catch (Exception e) { System.out.println("插入数据失败:" + e.getMessage()); } }
}

2.5 查询数据

使用 PreparedStatement 对象查询数据。以下是查询示例:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); String sql = "SELECT * FROM students WHERE age > ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, 18); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { System.out.println("姓名:" + rs.getString("name") + ",年龄:" + rs.getInt("age")); } } catch (Exception e) { System.out.println("查询数据失败:" + e.getMessage()); } }
}

2.6 更新数据

使用 PreparedStatement 对象更新数据。以下是更新示例:

import java.sql.Connection;
import java.sql.PreparedStatement;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); String sql = "UPDATE students SET age = ? WHERE name = ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, 21); pstmt.setString(2, "张三"); pstmt.executeUpdate(); System.out.println("数据更新成功!"); } catch (Exception e) { System.out.println("更新数据失败:" + e.getMessage()); } }
}

2.7 删除数据

使用 PreparedStatement 对象删除数据。以下是删除示例:

import java.sql.Connection;
import java.sql.PreparedStatement;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); String sql = "DELETE FROM students WHERE name = ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, "张三"); pstmt.executeUpdate(); System.out.println("数据删除成功!"); } catch (Exception e) { System.out.println("删除数据失败:" + e.getMessage()); } }
}

三、高级技巧

3.1 使用事务

在 Java 中,可以使用 Connection 对象的事务管理功能来确保数据库操作的原子性。以下是使用事务的示例:

import java.sql.Connection;
import java.sql.PreparedStatement;
public class Main { public static void main(String[] args) { try { Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db"); conn.setAutoCommit(false); // 关闭自动提交 String sql1 = "INSERT INTO students(name, age) VALUES(?, ?)"; PreparedStatement pstmt1 = conn.prepareStatement(sql1); pstmt1.setString(1, "李四"); pstmt1.setInt(2, 22); pstmt1.executeUpdate(); String sql2 = "UPDATE students SET age = ? WHERE name = ?"; PreparedStatement pstmt2 = conn.prepareStatement(sql2); pstmt2.setInt(1, 23); pstmt2.setString(2, "李四"); pstmt2.executeUpdate(); conn.commit(); // 提交事务 System.out.println("事务成功!"); } catch (Exception e) { try { if (conn != null) { conn.rollback(); // 回滚事务 } } catch (Exception ex) { ex.printStackTrace(); } System.out.println("事务失败:" + e.getMessage()); } }
}

3.2 使用连接池

在 Java 中,可以使用连接池来提高数据库操作的效率。以下是使用连接池的示例:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
public class Main { private static final DataSource dataSource; static { HikariConfig config = new HikariConfig(); config.setJdbcUrl("jdbc:sqlite:example.db"); config.setUsername("root"); config.setPassword("root"); dataSource = new HikariDataSource(config); } public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } public static void main(String[] args) { try { Connection conn = getConnection(); System.out.println("从连接池获取连接成功!"); } catch (SQLException e) { System.out.println("获取连接失败:" + e.getMessage()); } }
}

四、总结

本文详细介绍了在 Java 中使用 SQLite 数据库的方法,包括环境搭建、基本操作和高级技巧。通过本文的学习,您应该能够轻松地将 SQLite 数据库集成到您的 Java 应用程序中。

评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流