首页 > 编程知识 正文

嵌入式数据库教程,java常用的数据结构

时间:2023-05-05 11:07:22 阅读:152074 作者:1122

Ava嵌入式数据库的比较

我打算开发小型(Java ) APP来管理财务状况。 我觉得有必要使用嵌入式数据库,但我在这个问题上没有经验。 我看了几个可用的产品,但不能决定哪个更适合我。 H2,HSQLDB,Derby,Berkeley DB似乎都是好候选人,但我还是不知道他们如何互相比较。 谢谢你比较这些,决定用哪个。

我打算在我的APP应用程序中使用Hibernate (除非建议使用DBMS提供的API ),但是我希望可以使用SQL浏览工具(模式修改和数据修改)轻松编辑数据库。

谢谢你。

18个解决方案

55 votes

或者

在hsqldb-openoffice中使用,经过测试,稳定可靠。 很容易使用。 要编辑db-data,只需打开文件并编辑insert语句。

或者

H2 -据说更快(开发者最初设计hsqldb ) )。

使用哪一种取决于所需的性能和稳定性。

H2的开发人员进行了出色的性能评估:

[ http://www.H2 database.com/html/performance.html ]

svenlilienthalanswered 2019-08-05t 10336025336016 z

34 votes

使用Apache Derby几乎满足了所有嵌入式数据库的需要。 您也可以使用基于Derby的Sun的Java DB,但最新版本的Derby已更新。 它支持许多商用本地数据库支持的选项,但更小,更容易嵌入。 我有一些数据库表,但100多万条记录没有问题。

大约三年前使用过HSQLDB和Hypersonic。 当时有几个主要的性能问题,但由于这些问题,我然后切换到了Derby。 在Apache的孵化器中,Derby也很稳固。

chrisdailanswered 2019-08-05t 10336025336048 z

28 votes

我需要在项目中使用Java嵌入式数据库。 为了理解各数据库的优缺点做了很多研究。 我写了一个博客,列举了受欢迎的嵌入式java数据库(H2、HSQLDB、Derby、ObjectDB、Neo4j、OrientDB ) )的优缺点,请看一下。 我选择了H2。 我觉得那个最符合我的要求。 博客: [ http://say rohan.blogspot.in/2012/12/choosing-light-weight-Java-database.html ]希望对您有帮助。

rohankarwaanswered 2019-08-05t 10336026:13 z

21 votes

和H2一起去。 比德比好得多。 有关详细信息,请参阅[ http://www.H2 database.com/html/performance.html ]。

k2j answered 2019-08-05t 10336026336037 z

14 votes

HSQLDB是个好候选,但你可能会相信它会在OpenOffice中使用。 但是,在这么小的个人APP应用程序中,为什么不使用对象数据库而不是传统的关系数据库呢?

我在某个项目中使用过DB4O,对此非常满意。 面向对象的,你不需要整个Hibernate层,就可以直接插入/更新/删除/查询对象! 此外,您无需担心体系结构。 直接使用对象,DB4O完成剩下的工作!

我同意适应这个新数据库需要一些时间,但是请参阅DB40教程以了解如何轻松使用数据库

编辑:如注释中所示,DB4O将自动处理类的新版本。 此外,此处列出了[ http://code.Google.com/p/db4o-om/]

wookaianswered 2019-08-05t 10336027336023 z

12 votes

Javadb(sun的Apache Derby发行版)当前在JDK 6上发行!

我一直想做Jason Cohen这样的事,觉得那看起来像是JDK发行版中最简单的方法(上周哪个版本现在是我APP的要求) 或者我只是懒惰。

stuthompsonanswered 2019-08-05t 10336027336054 z

7 votes

我们在生产中使用hsqldb & amp; #34; 无配置和映射; #34; 我们的APP选项。 这样就可以方便地安装实际的数据库并进行试用。

但是,我们不支持正常使用。 有几个理由:

与数据大小成比例地变慢。

在我们的APP软件之外很难访问。 例如,用于自定义报告。

事务/磁盘同步不正确,容易导致数据丢失。

至少关于(2)和(3),有几种方法,但很难。 安装MySQL等更简单。

jsoncohenanswered 2019-08-05t 10336028336054 z

7 votes

neo4j是:

嵌入式,基于磁盘的完全事务性Java持久性引擎,用于存储以图形而非表格形式构建的数据

我还没有机会尝试它 - 但看起来很有希望。 请注意,这不是SQL数据库 - 您的对象图是为您保留的 - 因此它可能不适合您现有的应用程序。

devstopfix answered 2019-08-05T10:29:33Z

5 votes

可以在这里找到好的比较工具:[http://www.jpab.org/All/All/All.html]

另请注意DBMS / JPA比较的头对头

Uros Majeric answered 2019-08-05T10:30:04Z

4 votes

对于.Net和Java,我都是DB4O的忠实粉丝。

自早期版本发布以来,性能已经变得更好。 许可模式也不是太糟糕。 我特别喜欢可用于查询对象的选项。 通过示例查询非常强大且易于习惯。

Kilhoffer answered 2019-08-05T10:30:36Z

4 votes

您将使用什么标准来评估这些标准? 如果您还不知道,那么您现在就不需要做出决定。 尝试使您的应用程序尽可能与数据库实现无关 - 提供适当的包装器,数据访问对象等,并在您掌握所有事实并做出决定时做出此决定。

如果你正在使用关系数据库和SQL,那么上面的内容不应该太难(使用JDBC等)。 确保您有大量的周围测试,以便当您想要在数据库之间切换时,您可以确定您的应用程序的功能保持不变。

我前段时间遇到过同样的问题。 我不知道要去哪个数据库,所以我的第一个解决方案使用了Derby(或HSQLDB?),之后我才能切换到HSQLDB(或Derby?无法记住哪个解决方案有效) #39; d确定我遇到问题的地方(与绩效有关)以及哪种解决方案对我有用。

Brian Agnew answered 2019-08-05T10:31:15Z

4 votes

大多数事情已经说过,但我可以补充一点,我在一些宠物项目中使用过HSQL,Derby和Berkely DB,它们都运行得很好。 所以我不认为说实话真的很重要。 值得一提的是,HSQL将自己保存为带有SQL语句的文本文件,这非常好。 使您在开发快速进行测试和设置数据时非常容易。 如果需要,也可以进行快速编辑。 如果你还需要更改,猜猜你可以轻松地将所有这些转移到任何数据库:)

willcodejavaforfood answered 2019-08-05T10:31:41Z

4 votes

HSQLDB可能会导致大型应用程序出现问题,而不是那么稳定。

我所听到的最好的(不是第一手经验)是berkleyDB。 但除非你开源,否则由于许可将导致你使用一条腿和一条腿......请参阅[http://www.oracle.com/technology/software/products/berkeley-db/htdocs/licensing。 html]了解详情。

PS。 如果您不知道,berkeley DB不是关系数据库。

Chii answered 2019-08-05T10:32:19Z

3 votes

我使用过Derby,我真的很讨厌它的数据类型转换功能,尤其是日期/时间功能。 (号码类型)< - > Varchar转换它是一种痛苦。

因此,如果您计划在数据库语句中使用数据类型转换,请考虑使用其他嵌入式数据库,我太晚了解它。

最新的Derby Version数据类型转换

Telcontar answered 2019-08-05T10:32:57Z

3 votes

我想这篇文章有点晚了(很晚;-)),但我想添加Perst,一个面向Java和.NET的开源,面向对象的嵌入式数据库。 供您考虑。 Perst是一个用于Java的开源/双许可嵌入式数据库。 该发行版与谷歌的Android平台兼容,还包括Perst Lite for Java ME。 我们甚至构建了一个Android基准测试并制作了关于这个主题的白皮书......你可以看看这里:[http://www.mcobject.com/index.cfm?fuseaction=download&pageid=581&sectionid= 133]

祝一切顺利,克里斯

answered 2019-08-05T10:33:29Z

3 votes

如果我是正确的,H2来自编写HSQLDB的同一个人。 如果你信任他们网站上的基准测试,它会好很多。 此外,还有一些观点认为太阳社区太快进入德比。

smartnut007 answered 2019-08-05T10:33:54Z

2 votes

我个人赞成HSQLDB,但主要是因为它是我尝试过的第一个。

据说H2更快,并且提供了更好的GUI前端(顺便说一句,它是通用的,适用于任何JDBC驱动程序)。

至少HSQLDB,H2和Derby提供了非常适合开发的服务器模式,因为您可以同时使用您的应用程序和某些工具访问数据库(嵌入模式通常不允许)。

Joachim Sauer answered 2019-08-05T10:34:32Z

2 votes

我意识到你提到了SQL浏览,但你问题中的其他一切让我想建议你也考虑DB4O,这是一个很棒的简单对象DB。

Fabian Steeg answered 2019-08-05T10:34:56Z

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。