Hibernate Vs iBATIS(休眠与 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.
这篇关于休眠与 iBATIS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:休眠与 iBATIS


- 从 finally 块返回时 Java 的奇怪行为 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- Eclipse 插件更新错误日志在哪里? 2022-01-01
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01