ibaits和hibernate有什么区别啊
2个回答
展开全部
ibatis只是封装了数据访问层,替我们做了部分的对象关系映射。但我们的代价是必须要写xml配置文件,相对于hibernate我们还要写很多 sql。hibernate通过工具直接从数据库模式生成实体类和基本的配置文件,而且大部分情况下不需要我们写sql,会较大的提升开发效率。但这些也 有很多的局限性,尤其是对环境的要求较高(数据库设计,对象设计,团队的协作等)。
个人感觉ibatis对项目比较有意义的地方在于它小巧灵活,可扩展,封装了数据访问层(事务,缓存,异常,日志),并提供了dao框架支持。
利用ibatis我们可以做到代码和sql的分离,只要sql能够解决的问题,ibatis就能帮我们较容易的解决,同时也使我们的项目对某一框架的依赖 性变小(因为ibatis是非侵入性的)。这将极大的降低项目风险,减少解决复杂问题的时间,使项目的维护变得简单。
ibatis对于应用的修改,调试,扩充和维护将会变得容易自然。修改时,我们主要修改的是代表模型的实体对象,xml配置文件中的sql,和/或配置文 件的resultmap(很多时候是不需要的)。同时,sql和代码分离,我们不用在代码的stringbuffer的append方法之间寻找需要修改 的sql。配置文件中的sql便利了我们的调试和对sql的评审及以后的sql重用。
利用一些框架在前期一般会拖慢开发效率。因为我们需要付出学习成本,很多时候,使用框架需要写很多配置文件,在使用不熟时开发速度较慢;同时利用框架往往 使系统代码量增大,比如model1和model2模型,开发效率应该还是model1快,四层的架构肯定比两层的代码量大。 但对于中后期开发和维护将会极大的提高效率。
利用一些较完全的开发框架和代码生成工具,在前期会较大的提高开发效率,但在后期常常会拖慢进度,并有可能成为以后维护的梦魇。比如torque生成实体类和其对应的sql,虽大幅提高了效率,但修改负担较大。
比较理想的开发方式是使用简单框架结合简单的代码生成工具。框架提供系统的基础服务,并规范开发。框架一方面提供了开发中某一方面的开发基础支持,比如数 据访问层,事务,日志,公用类,异常等。另一方面,也为开发定义了模式,定义了系统的基本轮廓。同时,通过简单的代码生成工具生成部分低级的代码。比如通 过工具从数据库模式生成实体类。这些类生成后我们可以自由修改。
hibernate是十分强大,比较完善的orm框架,不过这是它的优点也是它的缺点。 j2ee系统是否采用hibernate3,是一个需要认真评估的问题。
要想hibernate工作的好,数据库的设计必须好。同时对于复杂的数据操作同时需要使用sql,hibernate3对于直接使用sql的支持比hibernate2要自然,这一点是可以接受的。
hibernate比较复杂,功能强大而灵活,要用好hibernate确实不是很简单,当然spring框架提供了对hibernate的封装,使hibernate的使用变得简单了点。
可以说ibatis在任何系统里都适用,但未必是最好选择。不过ibatis提供的思路是我们应该仔细考虑的。
刚刚实施了一个项目, 起初用的Hibernate, 因对Hibernate较熟,且有多个Web项目应用。 然而此项目为一个数据汇集中心,数据量非常庞大,基本都是各种需要多粒度的抽取和呈现数据,比如同一张表,会有很多过滤、排序、分组的呈现,Hibernate对付这些情况非常繁琐,不灵活,直接用Jdbc倒也方便,比如Spring的JdbcTemplate,然而SQL语句的管理、根据条件生成SQL等又显得不方便;
后来切换了持久层,采用MyBatis,确实很方便,过程中虽然走了点弯路,发现还是很值得的和必要的。一堆SQL都在一个XML文件中,而且还有条件判断语句,公共的SQL部分引入管理起来很方便。而且MyBatis上手也快,维护难度比较低。
总体感觉,对于CRUD等模块多、业务相对简单的,用Hibernate方便;对于复杂报表、查询、业务关联度比较强的,MyBatis/ibatis比较方便。
个人感觉ibatis对项目比较有意义的地方在于它小巧灵活,可扩展,封装了数据访问层(事务,缓存,异常,日志),并提供了dao框架支持。
利用ibatis我们可以做到代码和sql的分离,只要sql能够解决的问题,ibatis就能帮我们较容易的解决,同时也使我们的项目对某一框架的依赖 性变小(因为ibatis是非侵入性的)。这将极大的降低项目风险,减少解决复杂问题的时间,使项目的维护变得简单。
ibatis对于应用的修改,调试,扩充和维护将会变得容易自然。修改时,我们主要修改的是代表模型的实体对象,xml配置文件中的sql,和/或配置文 件的resultmap(很多时候是不需要的)。同时,sql和代码分离,我们不用在代码的stringbuffer的append方法之间寻找需要修改 的sql。配置文件中的sql便利了我们的调试和对sql的评审及以后的sql重用。
利用一些框架在前期一般会拖慢开发效率。因为我们需要付出学习成本,很多时候,使用框架需要写很多配置文件,在使用不熟时开发速度较慢;同时利用框架往往 使系统代码量增大,比如model1和model2模型,开发效率应该还是model1快,四层的架构肯定比两层的代码量大。 但对于中后期开发和维护将会极大的提高效率。
利用一些较完全的开发框架和代码生成工具,在前期会较大的提高开发效率,但在后期常常会拖慢进度,并有可能成为以后维护的梦魇。比如torque生成实体类和其对应的sql,虽大幅提高了效率,但修改负担较大。
比较理想的开发方式是使用简单框架结合简单的代码生成工具。框架提供系统的基础服务,并规范开发。框架一方面提供了开发中某一方面的开发基础支持,比如数 据访问层,事务,日志,公用类,异常等。另一方面,也为开发定义了模式,定义了系统的基本轮廓。同时,通过简单的代码生成工具生成部分低级的代码。比如通 过工具从数据库模式生成实体类。这些类生成后我们可以自由修改。
hibernate是十分强大,比较完善的orm框架,不过这是它的优点也是它的缺点。 j2ee系统是否采用hibernate3,是一个需要认真评估的问题。
要想hibernate工作的好,数据库的设计必须好。同时对于复杂的数据操作同时需要使用sql,hibernate3对于直接使用sql的支持比hibernate2要自然,这一点是可以接受的。
hibernate比较复杂,功能强大而灵活,要用好hibernate确实不是很简单,当然spring框架提供了对hibernate的封装,使hibernate的使用变得简单了点。
可以说ibatis在任何系统里都适用,但未必是最好选择。不过ibatis提供的思路是我们应该仔细考虑的。
刚刚实施了一个项目, 起初用的Hibernate, 因对Hibernate较熟,且有多个Web项目应用。 然而此项目为一个数据汇集中心,数据量非常庞大,基本都是各种需要多粒度的抽取和呈现数据,比如同一张表,会有很多过滤、排序、分组的呈现,Hibernate对付这些情况非常繁琐,不灵活,直接用Jdbc倒也方便,比如Spring的JdbcTemplate,然而SQL语句的管理、根据条件生成SQL等又显得不方便;
后来切换了持久层,采用MyBatis,确实很方便,过程中虽然走了点弯路,发现还是很值得的和必要的。一堆SQL都在一个XML文件中,而且还有条件判断语句,公共的SQL部分引入管理起来很方便。而且MyBatis上手也快,维护难度比较低。
总体感觉,对于CRUD等模块多、业务相对简单的,用Hibernate方便;对于复杂报表、查询、业务关联度比较强的,MyBatis/ibatis比较方便。
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询