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

相关推荐
荣码2 分钟前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
SamDeepThinking6 分钟前
Java微服务练习方式
java·后端·微服务
兵慌码乱10 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
朦胧之11 小时前
AI 编程-老项目改造篇
java·前端·后端
程序猿大帅15 小时前
别再只当调包侠了:用 Spring AI 落地 Function Calling,我被大模型硬生生砸出了三个大坑
java
程序员晓琪16 小时前
约定大于配置:基于 Java 包名自动生成 API 版本路由的最佳实践
java·spring boot·后端
Flittly16 小时前
【AgentScope Java新手村系列】(11)中断与恢复
java·spring boot·spring
众少成多积小致巨17 小时前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
东坡白菜17 小时前
破局全栈:前端开发的Java入门实战记录—JPA(2)
java·后端
SimonKing1 天前
艹,维护AI写的代码,我心态崩了......
java·后端·程序员