休眠与 iBATIS
对于我们的新产品重新设计,我们正在从 Java 中选择最佳框架.由于考虑为模型采用与数据库无关的方法,我们正在研究 Struts + Spring 与 iBATIS 或 Hibernate 之间的选项.请提供最佳建议,因为两者都提供持久性.
For our new product re-engineering, we are in the process of selecting the best framework from Java. As the consideration is to go for database agnostic approach for model, we are working on options between Struts + Spring with iBATIS or Hibernate. Please advice which is best as both offer persistence.
推荐答案
iBATIS 和 Hibernate 是完全不同的野兽.
iBATIS and Hibernate are quite different beasts.
我倾向于这样看待它:如果您的视图更以对象为中心,Hibernate 会更好地工作.但是,如果您更倾向于以数据库为中心,那么 iBATIS 是一个更强大的选择.
The way I tend to look at it is this: Hibernate works better if your view is more object-centric. If however you view is more database-centric then iBATIS is a much stronger choice.
如果您可以完全控制您的架构并且您没有极高的吞吐量要求,那么 Hibernate 可以很好地工作.对象模型提供了相当方便的代码,但代价是巨大复杂性.
If you're in complete control of your schema and you don't have an extremely high throughput requirement then Hibernate can work quite well. The object model makes for fairly convenient code but at a huge complexity cost.
如果您正在处理遗留"问题;您需要编写相当复杂的 SQL 查询的数据库架构,那么 iBATIS 可能会更好地工作.
If you're dealing with a "legacy" database schema where you need to write fairly complicated SQL queries then chances are iBATIS will work better.
HQL(Hibernate Query Language)是另一种您必须学习的语言,即便如此,您也可能会发现仍然需要编写 SQL 的情况.更重要的是,您可能会花半天时间找出 XML、属性、注释等的正确组合,以让 Hibernate 生成高性能的 SQL 查询.
HQL (Hibernate Query Language) is another language you'll have to learn and even then you'll probably find cases where you still need to write SQL. What's more, chances are you will at some spend half a day figuring out the right combination of XML, properties, annotations, etc to get Hibernate to generate a performant SQL query.
没有普遍的A优于B";回答这个问题.
There is no universal "A is better than B" answer for this question.
相关文章