我正在讨论用于从Java GUI存储一些简单数据的数据库。是否有一个可以与java一起使用的数据库,最终用户可以直接运行该程序并直接使用数据库文件而无需调整计算机设置?我曾经想过尝试使用mysql,但似乎我必须在我运行该程序的每台计算机上调整设置。通过调整设置,我指的是要求下载特定的驱动程序或设置服务器等...
答案 0 :(得分:1)
有一些纯Java SQL数据库系统可以在嵌入模式下运行。您只需要向客户分发一个额外的JAR文件。
寻找Apache Derby或H2。
答案 1 :(得分:1)
这里有两个相关但又独立的问题:是否为您的应用程序使用某些特定的小型或嵌入式数据库,以及是否向客户端公开数据库选择。
如果您了解应用程序服务器如何执行此操作,您通常会看到特定的供应商驱动程序API被“包装”以提供DB访问的标准内部接口。概念是所有RDBM的某些子集都是“受支持的”(通常通过直接提供jar,或者为jar文件提供下载链接),并且一些配置指示启动代码选择,连接,初始化和管理特定数据库连接(一个或多个)。
因此,您的第一个决定是您是希望客户端在支持的版本上安装自己支持的RDBM,还是您自己发布的嵌入式数据库并不一定会更改。前者需要一些设计,因此您可以抽象出连接细节,默认设置,启动代码,架构初始化和(可能)连接池详细信息。
后者可以像将jar文件推送到包中一样简单,并根据需要直接调用该API,也许只需将其包装到足以创建连接池。
包装驱动程序API(由于某些原始组件可能会变得棘手)也是一种让您自己与供应商细节隔离的好方法,因此即使您认为自己不会暴露或更改您支持的数据库。
像Derby等人这样的纯Java数据库与这种特定于供应商的特性非常相似,但是一旦进入企业数据库空间,“标准JDBC”接口可能会有多大差异,这是令人惊讶的。