这是一个开放性的问题。我将开始一个新的项目,正在寻找不同的orm与数据库访问集成。
你有最喜欢的吗? 有什么你建议不要碰的吗?
这是一个开放性的问题。我将开始一个新的项目,正在寻找不同的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();