【问题标题】:About choosing object relational mapping framework in Java [closed]关于在 Java 中选择对象关系映射框架 [关闭]
【发布时间】:2013-07-15 19:33:12
【问题描述】:

我目前正在用 Java 创建一些 DAO。但是应用程序不是很大,所以我不考虑使用hibernate或JPA。我可以使用什么轻量级框架? 谢谢 :D

【问题讨论】:

  • “轻量级”没有任何意义。这是否意味着“易于使用”? “记忆之光”? “处理器上的灯”? “配置灯”?不同种类的“轻盈”是独一无二的。例如,JPA 在“易于使用和设置”中是“轻量级的”。 Hibernate 和 JPA 不是替代品(JPA 是一种标准,Hibernate 是它的实现之一)。修正问题。
  • 对不起,如果我不想使用 Javaee,我应该说。据我所知,JPA 需要 javaee 对吗??
  • @JeffLee:没有。 JPA 可以在 Java EE 容器之外使用。
  • 如果我只是在寻找数据在表和对象之间绑定的函数。有什么框架可以做到这一点
  • 但我需要 javax.persistence 库。我只是下载它并导入到构建路径????

标签: java hibernate jpa object-relational-model


【解决方案1】:

Hibernate 和 JPA 都不是我所说的“轻量级”。

我推荐 Spring JDBC 模板或 iBatis。或者只是直接的 JDBC。有多难?

如果您没有实体对象模型,那么任何 ORM 解决方案都不会为您提供帮助。 “O”代表“对象”。

如果你很了解 SQL 并且想从关系的角度来思考,我会说 ORM 是一个糟糕的选择。

【讨论】:

  • 谢谢,这很有帮助:D
  • 计算“程序员需要编写和维护的行数” Hibernate 或其他 JPA 库非常简单。
  • 不,我不相信这是真的。依赖关系很重要。这就是凶手。
  • @duffymo:这不是“相信”的问题。这是实际计算行数的问题。依赖关系很重要——有时。有时不会。
  • 你只计算你写的行数,而不是为你写的行数。依赖关系可能很重要。如果你没有对象模型,ORM 不适合你。
【解决方案2】:

看看ormLite。它旨在成为一个轻量级的 ORM 工具,但如果我完全诚实,我会接受 duffymo 的建议,直接使用 Spring JDBC。

【讨论】:

  • 我很新,想问一下,Spring JDBC和SpringMVC有关系吗??
  • 扫描组件以进行注入的总体思路相同,但显然注释和功能不同。看看这个例子dzone.com/tutorials/java/spring/spring-jdbc-tutorial-1.html
  • @JeffLee:Spring 是一个知名框架的名称。 Spring JDBC 是一对(大约 20 个)类,它们有助于一些常见的 JDBC 任务(但不将类映射到表)并且通常与 Spring 一起使用,但不依赖于 Spring 本身(没有“扫描组件”或涉及“注射”)。 SpringMVC 是一个使用 Spring 构建的复杂的遗留 Web 框架。
  • 是的,Spring 是一个具有 MVC 和持久性等功能的大型框架,但如果您选择不使用,则不必全部使用。专注于您需要的东西并不断发展。
【解决方案3】:

就设置而言,最轻量级的解决方案是 Eclipselink(它是一种 JPA 实现)。使用 Hibernate 会产生相同的代码(因为它也是 JPA 实现),但需要更多的依赖项。

要使用 Eclipselink,您只需要在类路径中添加三个 jar 和一个非常短的配置文件 (META-INF/persistence.xml)。查看确切的 jar 的最简单方法是使用 Netbeans 并使用 libraries->add->eclipselink (jpa 2.1) 添加它们。

无论您选择哪种解决方案,您还需要相关的 JDBC 驱动程序。

如果您是初学者,JPA 库(如 Eclipselink 或 Hibernate JPA)是一个不错的选择,因为:

  • 您的 IDE 可能会有一些工具来帮助您处理 persistence.xml 和映射;
  • 这是一个非常流行的标准,程序员普遍认为它很好;
  • 它让你做简单的事情变得非常容易; bootstrapping 是一行代码,配置一个简单的类只需两个注解即可;
  • 它让你成长:当你有一天想使用 Java EE 堆栈时,了解 JPA 会很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 2010-11-12
    • 2011-04-24
    • 2019-03-27
    相关资源
    最近更新 更多