这是一个开放性的问题。我将开始一个新的项目,正在寻找不同的orm与数据库访问集成。

你有最喜欢的吗? 有什么你建议不要碰的吗?


当前回答

没有,因为ORM占用了太多的控制权,而且好处很小。当您必须调试使用ORM导致的异常时,所节省的时间很容易被浪费掉。此外,orm不鼓励开发人员学习SQL和关系数据库的工作方式,并将其用于自己的利益。

其他回答

没有,因为ORM占用了太多的控制权,而且好处很小。当您必须调试使用ORM导致的异常时,所节省的时间很容易被浪费掉。此外,orm不鼓励开发人员学习SQL和关系数据库的工作方式,并将其用于自己的利益。

我已经停止使用orm了。

原因并不是这个概念有什么大缺陷。Hibernate工作得很好。相反,我发现查询的开销很低,我可以将大量复杂的逻辑放入大型SQL查询中,并将大量处理转移到数据库中。

因此,请考虑只使用JDBC包。

我建议使用MyBatis。它是JDBC之上的一个薄层,它很容易将对象映射到表,并且仍然使用纯SQL,一切都在您的控制之下。

Hibernate,因为它基本上是Java中事实上的标准,并且是创建JPA的驱动力之一。Spring对它有很好的支持,几乎每个Java框架都支持它。最后,GORM是一个非常酷的包装器,它使用Groovy做动态查找器等。

它甚至被移植到。net (NHibernate),所以你也可以在那里使用它。

当我在编写一个中等大小的JavaSE应用程序时,我对Avaje Ebean有过很好的体验。

它使用标准JPA注释来定义实体,但公开了一个更简单的API(没有EntityManager或任何附加/分离实体之类的废话)。它还允许您在必要时轻松使用SQL查询或事件纯JDBC调用。

它还为查询提供了一个非常好的流动和类型安全的API。你可以这样写:

List<Person> boys = Ebean.find(Person.class)
                                  .where()
                                       .eq("gender", "M")
                                       .le("age", 18)
                                  .orderBy("firstName")
                                  .findList();