Hibernate与IBatis的优缺点及可行性分析

1.优点

简单:

易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

实用:

提供了数据映射功能,提供了对底层数据访问的封装(例如ado.net),提供了dao框架,可以使我们更容易的开发和配置我们的dal层。

灵活:

通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。

功能完整:

提供了连接管理,缓存支持,线程支持,(分布式)事物管理,通过配置作关系对象映射等数据访问层需要解决的问题。提供了dao支持,并在dao框架中封装了ado.net,Hibernate和datamapper。

增强系统的可维护性:

通过提供dal层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

2.缺点

滞后性:

还没有明确对.net2.0的支持。最新版本在2.0下编译可以,但有些单元测试不能通过。

不成熟,工程实践较少:

ibatisnet在实际项目中的使用较少。 只是理论上可行.

半orm,工具支持较少:

需要我们自己写sql,并且.net下还未发现可以自动生成业务层类和配置文件的工具,这点和Hibernate不一样,Hibernate会为我们的数据库直接产生sql,并有一些辅助工具。因此使用ibatis比Hibernate要多做一些工作。

时间: 2024-11-01 23:38:37

Hibernate与IBatis的优缺点及可行性分析的相关文章

hibernate和ibatis大数据量处理问题

问题描述 网上很多人多说,hibernate 不适合处理大数据量,建议使用ibatis我想知道为什么?还有hibernate 和ibatis对大数据量处理的区别是什么,求解答 尽量详细说明!谢谢 解决方案 hibernate是ORM mybatis更多是一种sql mapping吧听人说 是mybatis用的多一点...不过 hibernate比mybatis难学点倒是真的..其实一些对hibernate性能的谬论是因为对hibernate掌控不足引起的(欢迎打脸)这里有篇参考文:http://

Hibernate VS MyBatis 区别 Hibernate3和MyBatis(iBatis)的执行效率比较

我不想引起Hibernate和Mybatis的口水仗,关于这个的孰是孰非,JE上有很多. 关于O/R Mapping的理论,网上也有很多.其实完整的O/R mapping理论是想让程序员从数据的CRUD中解放出来,专注于使用OO的思想来实现业务逻辑,使用OO的思想当然就很大程度上需要遵守SOLDI原则,而不是一会要用OO的眼光建立业务领域模型,一会要用Relation的数学观点来操作数据. 还有一点,在O/R Mapping也提到了,就是要让那些不熟悉SQL的人也能开发需要数据存储的工程,所以才

项目中使用了ibatis、hibernate时,怎么来控制事务

问题描述 现在的项目中使用了ibatis.hibernate然后在spring的配置文件里面配置<beanid="txManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><propertyname="dataSource"ref="dataSource"/></bean><be

从Jpetstore 开始IBATIS之旅

前一阵在研究O/R MAPPING,觉得HIBERNATE和IBATIS都是好东西,但IBATIS更容易上手,而且跟数据库打交道的时候只需把SQL 语句配置在XML里即可,不象HIBERNAMTE要写复合其规范的HQL.当然现在HIBERNATE大行其道肯定是有道理的,我过一阵子也打算好好学习一下. 技术发展的太快,学习方法是很重要的.(看来开源确实促进了生产力的发展啊,由此推断,共产主义社会肯定会实现的啦.)我认为必须摒弃抱本书按部就班的学习方法,而应该是STUDY IN ACTION,在实践

使用hibernate的优势

Hibernate在解决性能问题方面做得非常好.有了它的缓存机制,使用第三方缓存和数据库连接池,就 较好的解决的性能问题.但这些还不够,hibernate给了开发者足够的自由,让开发者自己去控制性能问 题. 学习了一段时间的ibatis,我觉得hibernate有着ibatis无法替代的优势. 1.开发者都知道,hibernate让我们以oo的方式操作数据库,这让我们看到了hibernate的强大之处, 体验到操作数据的方便.但Gavin King说,hibernate最耀眼之处是hiberna

Struts 2.1.6精简实例系列教程(3):新闻管理Model层的开发(整合iBatis)

本期开始讲Model层的开发,整合iBatis框架,iBatis是Apache旗下Java数据持久层的框架,跟Hibernate是同一类型的框架.大家可到它的官方网站去下载http://ibatis.apache.org/java.cgi,如下图: 我这里下载的是当前最新版本iBatis 2.3.4 , 下载之后,解压包是这样的: 我们在lib目录下,找到"ibatis-2.3.4.726.jar"文件,加入到我们项目的lib目录下,就行.在这里,我们先说下怎么学习这个iBatis框架

Hibernate上手指南

本文着重讲述了为什么要使用Hibernate,此外也简单的介绍了如何使用Hibernate,以及Hibernate中的一些基本概念.借这篇文章来向还没有接触过Hibernate的开发者推荐款优秀的开源ORM产品. 一.WhyHibernate? 现在流行"测试驱动开发",相似的我觉得"目的驱动学习"是一种比较好的接受新技术,新知识的途径.在学习一样新的技术之前,首先得明确到底有没有必要学习,已有的技术是否已经工作的很好,学习这个新的技术是为了解决什么问题.如果您明确

Spring,hibernate,struts经典面试笔试题(含答案)_java

本文讲述了Spring,hibernate,struts经典面试笔试题及其参考答案.分享给大家供大家参考,具体如下: 1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: ① . 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代

关于ibatis继承映射的问题

问题描述 我做了3个model,Customer,CompanyCustomer和PersonalCustomer分别继承Customer,hibernate用<discriminatorolumn="customerCatagory"type="string"/>来区别hibernate集成iBATIS后,用iBATIS插入对象时抛出异常:ustomerCatagory字段没有默认值,请问我该如何修改,让他区分Customer的两个子类