1

我有一个可以由不同用户运行的桌面 java 应用程序。它利用 JPA 访问存储为文件的数据库。为此,我不想运行单独的数据库服务器。

数据库的目的是存储在程序中完成的动作,它是一个简单的“存储记录”操作。但是所有用户都必须能够读取这些存储的记录。

我如何确保不同的应用程序可以保存它们的操作,同时不覆盖其他应用程序的操作?所以我需要一种方法:

  1. 打开数据库(文件)
  2. 锁定它
  3. 编写添加的动作
  4. 关闭数据库(文件)

JPA 中有没有办法执行/执行此操作?我现在正在使用休眠,但这不是一个严格的要求。

请不要回答“你可以用技术 XXX 做到这一点”。请注意,我担心并发问题以及如何强制打开文件并再次关闭。技术 XXX 如何做到这一点?

4

2 回答 2

0

JPA 是一个 ORM(对象关系映射)规范;ORM 中的 R 与 RDBMS 中的 R 含义相同。JPA 绝对不适合平面文件持久性系统

于 2013-04-04T08:05:21.827 回答
0

您可以尝试使用 SQLite 数据库文件。在这种情况下,您可以实现对同一文件(例如数据库)的并发访问,同时您可以使用SQLite JDBC 驱动程序以及您的 JPA 提供程序(例如 Hibernate)。

唯一的缺点可能是,严格地说,它不是纯 Java 方法,因为提议的 JDBC 驱动程序在其中捆绑了本机库,但我不认为这是一个问题。

于 2013-04-04T08:06:16.387 回答