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

时间:2019-05-21 12:20:45

标签: java database csv hsqldb

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

我需要我的应用程序在安装时随处运行,因此我想使用与应用程序一起提供的本地数据库,并且可以从项目内部对其进行访问,而无需依赖于其他数据库

什么是实现本地数据库的最佳方法?

我考虑过将JDBC用于.csv文件,这是很多工作(?) 或使用HSQLDB并创建嵌入式DB?

您将如何实施?

编辑:

好的,所以我读了一点,发现了这个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

那么,在设置了第一个连接之后,最后,数据库将初始化,然后在部署项目时使用内存路径?

2 个答案:

答案 0 :(得分:1)

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

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

如果您可以学习更多知识,请使用h2 + JPA(例如eclipselink),这-连同自动模式生成-将使部署更加容易(您无需编写/维护/运行DDL)。

答案 1 :(得分:1)

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

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