使用 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 替换为实际的数据库文件路径,并根据需要修改表结构和数据操作的逻辑。

相关推荐
张国荣家的弟弟7 分钟前
【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?
java·jar·bi
ZSYP-S18 分钟前
Day 15:Spring 框架基础
java·开发语言·数据结构·后端·spring
yuanbenshidiaos25 分钟前
C++----------函数的调用机制
java·c++·算法
o(╥﹏╥)41 分钟前
linux(ubuntu )卡死怎么强制重启
linux·数据库·ubuntu·系统安全
是小崔啊43 分钟前
开源轮子 - EasyExcel01(核心api)
java·开发语言·开源·excel·阿里巴巴
黄公子学安全1 小时前
Java的基础概念(一)
java·开发语言·python
liwulin05061 小时前
【JAVA】Tesseract-OCR截图屏幕指定区域识别0.4.2
java·开发语言·ocr
阿里嘎多学长1 小时前
docker怎么部署高斯数据库
运维·数据库·docker·容器
jackiendsc1 小时前
Java的垃圾回收机制介绍、工作原理、算法及分析调优
java·开发语言·算法
Yuan_o_1 小时前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端