【问题标题】:How should i implement a DB in my java application locally我应该如何在本地的 java 应用程序中实现数据库
【发布时间】:2019-10-07 20:11:56
【问题描述】:

我正在尝试为我的学校项目构建一个简单的 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

那么,在我设置了第一个连接之后,DB会初始化,然后我应该在部署项目时使用内存路径?

【问题讨论】:

  • 这个问题在这里实际上没有一席之地,因为这是一个见仁见智的问题。对嵌入式数据库进行一些研究,然后选择最适合您需求的数据库。我个人会选择 SQLite。
  • --请看修改后的版本

标签: java database csv hsqldb


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多