用于少数计算机访问的Java嵌入式数据库



我只是想知道我是否可以(或者这是一个很好的使用方法)在服务器计算机上设置嵌入式数据库的位置,并在可以访问服务器文件夹和从数据库获取/插入数据的计算机上运行我的桌面应用程序?

例如,我有一台服务器机器和三台访问它的计算机。我希望他们插入/更新服务器数据库的数据,该数据库以嵌入式方式安装。

如果我做不到,哪种方法更简单、更自由?

编辑: 实际上服务器不是服务器。。这只是一台其他人可以访问的计算机。

在不同的应用程序之间共享嵌入式数据库的文件不是一个好主意。对于大多数嵌入式数据库实现来说,这甚至是不可能的,因为嵌入式数据库引擎需要对底层数据文件的独占访问。此外,通过共享文件夹访问数据库文件会对性能造成影响。

我知道只有两个数据库允许共享数据库文件访问:SQLite和MS access。Java和MS Access不是一个好的组合。避免它,只有在被迫的情况下才使用它。对于SQLite,我不知道它在同一台机器上的不同进程中是否表现良好。但对于共享文件夹,我认为这只适用于最简单的情况。

因此,如果您有多个客户端应用程序访问同一个数据库,那么您应该安装一个数据库服务器。数据库服务器正是为这样一个sceanario而设计的。它有效地管理服务器本地数据库文件,并可以同时处理多个客户端。有一些简单的实现,比如ApacheDerby或H2,它们都是纯Java实现,非常容易使用。如果你需要更高的性能,那么你可以使用MySQL或PostgreSQL,但它们的管理更复杂。

单词"embedded"通常意味着在给定的JVM中运行。要从客户端访问它,而不是从同一JVM中运行的其他代码访问它,需要提供一种连接方法,例如连接协议+端口。好吧,当你完成所有这些时,实际上你已经启动了自己的服务器。

如果您只想访问文件系统,通常情况下数据库会锁定它们正在使用的文件。如果它们不这样做,那么您无论如何都将丢失数据库通常提供给您的所有控制和ACID约束。

H2数据库可以以不同的模式运行:嵌入式、内存式、独立式和混合式。我想你是在问最后一种"混合"模式。

最新更新