数据库中的Java持久性

时间:2009-04-09 19:13:39

标签: java persistence

在Java中使用数据库持久性的最简单方法是什么?我知道,互联网上存在许多框架,但学习如何自己开发持久层及其设计模式可能会很有趣。从哪儿开始?书籍,网站,方法,代码示例等

10 个答案:

答案 0 :(得分:4)

首先查看预先存在的功能和源代码。这是一对夫妇(仅按字母顺序命名)

  • DbUtils:一个非常简单的JDBC包装器。也许开始在这里寻找想法!
  • EBean:与JPA本身类似
  • Hibernate:严重影响Java的JPA规范的事实上的标准
  • iciql:JaQu友好的分支
  • JaQu:H2自己的用于查询数据库的特定于域的语言
  • JDBI:在idiommatic Java中公开关系数据库访问
  • JDO:Apache Java数据对象
  • jOOQ:直接在Java中将SQL建模为域特定语言
  • MyBatis:“世界上最流行的SQL映射框架。” [原文](原名iBatis)
  • QueryDSL:一个类似SQL的流畅API,有许多不同的后端(不仅仅是SQL)
  • Quaere:与QueryDSL类似

很快,您可以编辑此答案并添加自己的框架!

答案 1 :(得分:3)

  

学习如何自己开发持久层可能会很有趣

不要!别傻了。

使用JDOJPA。第一个是通用对象持久性API,另一个是仅针对RDBMS-es。

他们有各种各样的实施,例如对于JPA,有EclipseLink(以前的Oracle TopLink),它也是JPA 2的参考实现,以及Hibernate,它也很受欢迎。

你真的,真的不想自己做。如果您想在这个领域工作,那么请参与其中一个现有项目。

答案 2 :(得分:3)

另一个有用的库是jDBI。它利用泛型具有良好的绑定+映射功能,同时仍然非常接近JDBC。 iBATIS应该具有相似的特征,虽然不是那么轻巧,而且已经存在了很长时间。

答案 3 :(得分:2)

我将从Sun的Java Persistence API(JPA)开始。这是一个good starter article

答案 4 :(得分:2)

简单的方法就是使用jdbc。 Java有一个很好的教程here

就抽象层而言。 Hibernate,根据我的经验,非常标准,值得学习。编程你自己可以是一个有趣的练习,但我想不出一个不使用hibernate的好理由。

答案 5 :(得分:1)

在最低级别,您需要与数据库通信,以便您使用JDBC。既然你设计了自己的框架,那么你就拥有了自己的框架。看一下JPAHibernate即可获得一些想法然后进行实验。

答案 6 :(得分:1)

除了之前的回复 - 检查DAO(数据访问对象)模式 - 它反映了应如何组织数据访问代码。

答案 7 :(得分:0)

我发现this book特别有用。 This也很好。

自己创造了一个我同意 - 这很有趣,也有很多工作。这一切都取决于你的目标。

答案 8 :(得分:0)

如果您正在寻找学习方法,请尝试获取Craig Larman的 Applying UML and Patterns.

的副本

alt text
(来源:codivation.com

Larman提出了一个关于轻量级数据库持久性映射器设计的章节。与基于不显眼的持久性模型的Hibernate不同,他提出了一个突兀的框架,其中域对象必须从PersistentObject扩展。我们还必须为每个持久域类编写映射器类。它的某种ActiveRecord模式没有任何代码生成概念。

答案 9 :(得分:0)

这个book企业应用程序架构的模式)看起来非常好看。我已经研究过了,开发持久性引擎的设计模式非常全面。它告诉了为什么,何时以及如何使用它们。