使用 Java 操作 SQLite 数据库

文章目录


1.导入依赖

bash 复制代码
<dependencies>
    <dependency>
        <groupId>org.xerial</groupId>
        <artifactId>sqlite-jdbc</artifactId>
        <version>3.36.0.3</version>
    </dependency>
</dependencies>

2.实际应用

bash 复制代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class SQLiteExample {

    // 数据库文件路径
    private static final String DB_PATH = "your_database.db";

    public static void main(String[] args) {
        createTable();
        insertData("John Doe", 25);
        queryData();
    }

    // 创建表
    public static void createTable() {
        String sql = "CREATE TABLE IF NOT EXISTS users (name TEXT, age INT)";
        executeSQL(sql);
    }

    // 插入数据
    public static void insertData(String name, int age) {
        String sql = "INSERT INTO users (name, age) VALUES (?,?)";
        executeUpdate(sql, name, age);
    }

    // 查询数据
    public static void queryData() {
        String sql = "SELECT * FROM users";
        executeQuery(sql);
    }

    // 执行 SQL 语句(创建表等)
    public static void executeSQL(String sql) {
        try (Connection connection = getConnection();
             PreparedStatement statement = connection.prepareStatement(sql)) {
            statement.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    // 执行更新操作(插入数据等)
    public static void executeUpdate(String sql, Object... params) {
        try (Connection connection = getConnection();
             PreparedStatement statement = connection.prepareStatement(sql)) {
            for (int i = 0; i < params.length; i++) {
                statement.setObject(i + 1, params[i]);
            }
            statement.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    // 执行查询操作
    public static void executeQuery(String sql) {
        try (Connection connection = getConnection();
             PreparedStatement statement = connection.prepareStatement(sql);
             ResultSet resultSet = statement.executeQuery()) {
            while (resultSet.next()) {
                String name = resultSet.getString("name");
                int age = resultSet.getInt("age");
                System.out.println("Name: " + name + ", Age: " + age);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    // 获取数据库连接
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection("jdbc:sqlite:" + DB_PATH);
    }
}

在上述示例中:

  • 定义了数据库文件的路径。
  • 提供了创建表、插入数据和查询数据的方法。
  • 通过 getConnection 方法获取与 SQLite 数据库的连接。

将 your_database.db 替换为实际的数据库文件路径,并根据需要修改表结构和数据操作的逻辑。

相关推荐
我是苏苏11 分钟前
C#基础:使用线程池执行并行任务
java·服务器·c#
Python之栈28 分钟前
Python 隐藏法宝:双下划线 _ _Dunder_ _
数据库·windows·microsoft
风象南28 分钟前
SpringBoot实现实时弹幕
java·spring boot·后端
编程、小哥哥1 小时前
互联网大厂Java求职面试实战:Spring Boot微服务架构及Kafka消息处理示例解析
java·spring boot·微服务·kafka·面试技巧
magic 2452 小时前
return this;返回的是谁
java·开发语言
sg_knight3 小时前
Eureka 高可用集群搭建实战:服务注册与发现的底层原理与避坑指南
java·spring boot·spring·spring cloud·微服务·云原生·eureka
数据潜水员9 小时前
C#基础语法
java·jvm·算法
你这个代码我看不懂9 小时前
Java项目OOM排查
java·开发语言
Zong_09159 小时前
AutoCompose - 携程自动编排【开源】
java·spring boot·开源·自动编排
heart000_110 小时前
MySQL事务与锁机制详解:确保数据一致性的关键【MySQL系列】
数据库·mysql