2

几年来,我首先在 C#、MVC、实体框架、数据库方面进行开发。现在我想尝试 Java 并选择 Play Framework 和 IDEA 作为 IDE。现在我搜索这样的 ORM 系统:

  • 轻松集成到 Play Framework 中;
  • 从数据库(逆向工程)生成类作为主要工具;
  • 在 C# 中使用 LINQ 之类的简单语言(例如:from x in context.MY_TABLE select x)
4

4 回答 4

2

我强烈建议使用jOOQ

  • 支持仅通过一个命令从控制台生成模型类:java -classpath jooq-3.1.0.jar;jooq-meta-3.1.0.jar;jooq-codegen-3.1.0.jar;postgresql-9.2-1003.jdbc4.jar;. org.jooq.util.GenerationTool /jooq_config.xml
  • 完全控制您的 SQL 查询。
  • 简单的 SQL 调试。很简单:看这里
  • 灵活而强大的 API。完整的文档
  • 字体。
  • SQL深度编程的理想选择。
  • 支持 Java 和 Scala。
  • 对高级 SQL 类型的开箱即用支持没有问题。
  • 内置导出到 xml、html、excel
  • 内置支持批量插入。
  • 很好的支持。
  • 开源
  • 支持许多数据库引擎。

个人感受

我一直很喜欢SQL,而且我真的有机会与许多ORM拥有多种技术的人一起工作(.NET: NHibernate, Entity Framework, Linq. Java: Hibernate, JPA. Scala: Anorm SQL),但对我来说没有好的解决方案。我用model firstdatabase first。每次我在应用程序的最关键点使用原始 SQL 和存储过程。ORM 会产生大量难以分析和优化的垃圾。

当我发现 jOOQ 时,我非常怀疑。在使用它大约 6-8 个月后,我知道就是这样。该工具允许您编写类似于原始 SQL 的每个查询,并且它是非常高效的工具。接下来是这个工具正在快速增长。

于 2013-12-06T16:50:55.387 回答
1

Play 具有内置 ORM - 它是 Ebean,您只需在 application.conf 中取消注释几行即可使用它(并可选择选择内置 H2 以外的数据库引擎,即 MySQL,如本问题中所述)

接下来models在文件夹中创建包app并开始添加您的模型。

官方文档中的更多详细信息。

不幸的是它不支持逆向工程......

于 2013-12-05T19:00:08.607 回答
0

我不知道 IDEA 是否支持 DB -> JPA 实体逆向工程,但 Eclipse Dali 做得很好——我在几个项目中使用了这种方法并且对它很满意。

http://www.eclipse.org/webtools/dali/

如果愿意,Play2 可以与完整的 JPA 配合使用。Ebean 仅使用 JPA 注释。我喜欢 EBean,因为即使我不完全相信 JPA 的标准 API(我已经在 J​​PA 2.0 上完成了它,所以不知道在 JPA 2.1 上它变得多么容易)和 EntityMananager 的有用性(所有的麻烦与连接/disconnedted entity)我是 JPA 注释的忠实粉丝。

对于任何对 JPA 感兴趣的人,我推荐这本书

http://www.amazon.com/Pro-JPA-2-Mike-Keith/dp/1430249269/

顺便说一句:JPA 的命名查询 / JPQL 对于像简单查询需求这样的 sql 来说可能没问题。Ebean 不支持 JPQL,因此如果想使用它,则需要完整的 JPA 实现,如 Hibernate 或 EclipseLink。

于 2013-12-05T21:59:44.287 回答
0

Jooq 不支持嵌套对象。这个想法很好,但不是很有用。

于 2016-03-28T19:58:53.733 回答