我应该如何在本地 java 应用程序中实现数据库

How should i implement a DB in my java application locally

我正在尝试为我的学校项目构建一个简单的 java 应用程序,我希望能够使用一个简单的数据库,以便在我的数据库上插入、更新、删除和询问查询.

我需要我的应用程序在安装时运行无处不在,所以我想使用我的应用程序附带的本地数据库,并且可以从项目内部访问,没有不同的数据库依赖性

实施本地数据库的最佳方式是什么?

我考虑过对 .csv 文件使用 JDBC,这需要大量工作(?) 或使用 HSQLDB,并创建一个嵌入式数据库?

你会如何实施?

编辑:

很好,所以我读了一点书并找到了这个 SQLite tutorial

public class Main {

    public static void main(String[] args) {
        try{
            Connection conn = DriverManager.getConnection("jdbc:sqlite: (how to set this path?)");
            Statement statement = conn.createStatement();
            statement.execute("CREATE TABLE CUSTOMERS (name TEXT,phone INTEGER,email TEXT)");


        } catch(SQLException el){
            System.out.println("somting went wrong" + el.getMessage());
        }
    }

}

现在我想设置用户文件夹的相对路径,并在用户计算机上设置连接。 我注意到上面写着:

o connect to an in-memory database, you use the following connection string:
jdbc:sqLite::memory

所以,设置完第一个连接后,我这边会初始化DB,然后部署项目时应该使用内存路径?

如果您愿意接受 JDBC 作为您的 API,请使用真正的嵌入式数据库:hsqldb 或 h2(或 derby)。它会比包装 csv 文件简单得多。

我会使用 H2,因为它可以在混合嵌入式/服务器模式下工作,这将允许您在嵌入式模式下 运行 您的应用程序,同时 - 使用一些外部工具(eclipse / intellij / netbeans / 其他)来检查你的数据库。

如果您可以忍受更多的学习,请使用 h2 + JPA(例如 eclipselink),这与自动模式生成一起将使部署更容易(您将不需要编写/维护/ 运行 DDL)。

JDBC 是一个简单的界面,允许您连接到嵌入式 Java 数据库。使用 HSQLDB,您可以选择使用 CSV 文件作为数据存储,以及它的 SQL 格式脚本文件或二进制数据文件。

HSQLDB可以工作在嵌入式/服务器混合模式,允许您使用外部工具访问数据库。