易于使用Java SE应用程序部署数据库

易于使用Java SE应用程序部署数据库,java,database,api,Java,Database,Api,我有一个JavaSE应用程序,它使用一个数据库。我目前正在使用XML文件来存储数据,但我担心这会在以后的使用中导致一些错误 因此,最好使用类似于Postgree/MySQL的DB。一个真正的数据库。但问题是,它是一个商业应用程序,在windows下运行,只需点击2次即可安装。我真的不喜欢在应用程序中安装数据库,然后运行脚本来构建表 是否有一个数据库可以用作JavaAPI?还是应该继续使用XML?(我正在同步对XML文件的每次访问)。最好的选择是什么? 它可以嵌入到您的应用程序中,无需单击即可安装

我有一个JavaSE应用程序,它使用一个数据库。我目前正在使用XML文件来存储数据,但我担心这会在以后的使用中导致一些错误

因此,最好使用类似于Postgree/MySQL的DB。一个真正的数据库。但问题是,它是一个商业应用程序,在windows下运行,只需点击2次即可安装。我真的不喜欢在应用程序中安装数据库,然后运行脚本来构建表

是否有一个数据库可以用作JavaAPI?还是应该继续使用XML?(我正在同步对XML文件的每次访问)。最好的选择是什么?


它可以嵌入到您的应用程序中,无需单击即可安装,并且支持JDBC和大多数ORM。

以下嵌入式数据库之一:

它们是轻量级的,占用很少的空间,并且可以在应用程序中嵌入而不会出现问题

由于它们是用Java编写的,并且每一个都是一个简单的jar文件,所以您的部署难题将保持在最低限度


您提到了MySQL和PostgreSQL。尽管我还没有尝试过,H2为各种流行数据库提供了一些功能,包括您提到的数据库。

寻找一个简单的SQLite数据库作为存储肯定是值得的。它只是文件系统中的一个文件。无需设置服务器。查看以下线程以获得介绍:您可以签出的另一个数据库是HSQLDB(该线程中的另一个答案中的链接)。这是一个用Java编写的关系数据库引擎,也基于单个文件

基于我以前将数据存储到XML的天真经验,我在XML上编写了一个完整的论坛系统,它基于RSS解析器和编写器。XML文件变得非常大,从而导致应用程序上频繁的请求超时

您可以改为使用类似SQLite的东西,其中数据存储在一个文件中,但更易于管理,并允许声明性语句,如
SELECT*FROM table

检查可能重复此用法示例,Derby如中所示