- 浏览: 822285 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
ibatis优缺点总结
1.优点 简单: 易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。 实用: 提供了数据映射功能,提供了对底层数据访问的封装(例如ado.net),提供了DAO框架,可以使我们更容易的开发和配置我们的DAO层。 灵活: 通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。 功能完整: 提供了连接管理,缓存支持,线程支持,(分布式)事物管理,通过配置作关系对象映射等数据访问层需要解决的问题。提供了DAO支持,并在 DAO框架中封装了ADO.NET,NHibernate和DataMapper。 增强系统的可维护性: 通过提供DAL 层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。 2.缺点 滞后性: 还没有明确对.NET2.0的支持。最新版本在2.0下编译可以,但有些单元测试不能通过。 不成熟,工程实践较少: IbatisNet 在实际项目中的使用较少。 只是理论上可行. 半ORM,工具支持较少: 需要我们自己写sql,并且.NET下还未发现可以自动生成业务层类和配置文件的工具,这点和NHibernate不一样,NHibernate会为我们的数据库直接产生sql,并有一些辅助工具。因此使用 Ibatis比NHibernate要多做一些工作。 3.可行性 没有最好的框架,只有最适合的框架。 存在的便是合理的,它存在就说明有它存在的道理。但它未必为我们存在。所以选择一个框架最主要的是看它对你有没有意义,意义有多大,是不是比其他框架带给你的好处要多。没有绝对的优点也没有绝对的缺点,重要的是看在什么情况下讨论。 上面说了部分的Ibatis的优点和部分缺点。这些优点从理论上证明Ibatis对任何数据持久层都合适,但未必是最好的选择。下面对上面的优缺点分别从两方面讨论。 简单: 我们都喜欢简单,简单意味着学习成本低,使用中出错的可能性低。同时,简单的东西一般来说功能不够强大。反过来,复杂的东西学习成本高,用起来不方便,并且团队没有很强的技术实力,一般不要使用。 实用: 解决了项目中需要解决的问题,这是任何实际工程中采用的框架和工具都应具有的性质,否则就不要拿到实际项目中来。 灵活: 灵活有两层意思,一种是简单易扩展,另一种是功能强大提供了很多选项。Ibatis属于前者,Hibernate属于后者。两者各有优缺点。 功能完整: Ibatis的功能完整也是相对的,比我们自己开发的框架应该完整,但对比其他框架肯定也有一些解决不了的问题。 增强系统的可维护性: 利用Ibatis可以做到sql和代码分离,可以设计出一个清晰的数据访问层(DAL)。但项目架构是否科学合理,是否以维护,关键不在Ibatis,因为它只是一个数据层框架。但是我们也不得不清楚,要想发挥Ibatis的优势,我们需要做一些额外工作,比如最好设计DAO接口,需要将业务层实体和对实体的访问放在不同的工程中,同时需要维护xml配置文件。 滞后性: Ibatis组现在还没有提到要支持.NET2.0,很多人在.NET2.0下使用Ibatis都出现了问题。所以如果要使用.NET2.0开发,IBatis不是一个好选择,还需要等待。 不成熟: 开源的东西很难说成熟,但一般比我们自己写的框架要成熟。由于我们可以拿到他的源代码,所以关键在于我们能否驾驭它。 半ORM,工具支持少: 这注定了Ibatis不能从本质上提升开发效率,我们需要自己写sql,写实体类,写配置文件。但这也是它优越的地方,它没有为我们做的他多,所以我们就有更多的施展空间。而且它非常适合那些并不能完全控制数据库的系统和需要利用数据库本身提供的高级特性的统计查询系统的开发。 使用Ibatis需要自己写sql,由于我们的sql不可能完全符合sql标准,比起NHibernate产生的sql来,可移植性差。不过由于我们更改数据库的可能性较小,对我们来说sql符合标准以便可以在迁移到不同服务器时代价最小并不是十分必要的。另一方面,NHibernate虽然可以屏蔽很多数据库间的不同,但是却很难利用某些数据库的高级特性,比如Oracle的分析统计函数。 NHibernate不适合数据库模式不规范,约束不完整,需要大量复杂查询的系统,同时NHibernate的学习成本较高,完全掌握 NHibernate也较困难,风险较大。 自己写框架未必比Ibatis的好,稳定,强大和可扩展。而且自己开发框架也需要较大的工作量。 如果使用DotNet并且要选一个数据层框架,而系统中有相当一部分较复杂的sql,或数据库设计不合理,脏数据多,对性能和资源要求严格,Ibatis 是一个比较不错的选择。他的那些缺点并不是致命的,而且也是有一些解决方案的。尤其是,当选用了Ibatis的DataAccess作为DAO框架时,我们可以同时使用NHibernate,ADO.NET和DataMapper(IbatisNet的核心组件),那样将会使风险降到最低,并且整个系统的框架比较合理。 另外,利用Ibatis可以统一编码风格,节约开发成本,大家不会再把精力浪费到分页 连接池 主键生成等地方了,可以集中精力进行业务组件的编写。 综上: 很多时候我们要在是自己开发框架和选用第三方框架和选用什么样的框架问题上进行综合考虑。考虑的标准当然是项目的当前情况和我们希望达到目的的一个平衡。 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提供的思路是我们应该仔细考虑的。
发表评论
-
iBatis SqlMap 的配置总结
2010-09-30 14:43 1510iBatis SqlMap 的配置总结 核心提示:S ... -
ibatis总结
2010-09-22 17:08 12291. IBatis简介 IBatis是以SQL为中心的 ... -
ibatis #和$的区别 总结
2010-08-31 21:01 1079ibatis #和$的区别 在写ibatis中的sql ... -
ibaits知识点
2010-08-29 21:11 1172ibaits知识点:如果你要在DaoImpl里面得到一个Lis ... -
IBatis学习总结
2010-08-24 07:35 994IBatis学习总结 一、 介绍: 相对于Hibernat ... -
ibatis中输入/输出各种类型的参数分析及#与$区别
2010-08-23 15:28 1515ibatis中输入/输出各种类型的参数分析及#与$区别 (1 ... -
ibaits #和$有什么区别
2010-08-23 15:18 1307#和$有什么区别,即select * from t ... -
ibatis总结
2010-08-17 09:56 13421. IBatis简介 IBatis是以SQL为中心的持久 ... -
如何进行ibatis动态多条件组合查询以及模糊查询(oracle,mysql)
2010-08-13 20:29 1591这几天在学习使用IBATIS突然要使用模糊查询,以及动态多个条 ... -
ibatis动态SQL语句
2010-08-13 16:53 1464ibatis动态SQL语句 动态SQL ... -
让iBatis中的insert返回主键
2010-08-11 15:09 1441让iBatis中的insert返回主键 <!-- ...
相关推荐
### ibatis与Hibernate对比之优缺点分析 #### 一、简介 在Java开发领域中,持久层框架(ORM框架)的选择对于项目的成功至关重要。其中,ibatis(现更名为MyBatis)与Hibernate作为两种广为人知且应用广泛的持久层...
### ibatis 与 hibernate 之间的比较:优点和缺点 #### 概述 在 Java 开发领域中,对象关系映射(Object Relational Mapping,简称 ORM)是一种将面向对象编程语言中的对象模型与数据库系统中的关系模型相互转换的...
7. **优缺点**: - 优点:高度可定制,性能优异,支持动态SQL,减少数据库依赖。 - 缺点:相比于ORM框架,学习曲线较陡峭,手动维护映射文件可能增加工作量。 总之,iBatis.net提供了一种灵活的方式来管理数据库...
2. 基于存储过程和基于SQL的分页方法,各自的优缺点。 3. 分析iBATIS源码,理解执行器如何处理分页逻辑。 4. 使用工具或插件辅助iBATIS的分页配置。 5. 如何在实际项目中优化分页性能,比如使用缓存,避免全表扫描等...
六、Ibatis的优缺点 优点: - SQL语句可独立于代码,便于调整和优化。 - 支持复杂的映射和动态SQL,提高了代码的可读性和可维护性。 - 灵活性高,可以很好地适应各种数据库。 缺点: - 需要手动编写SQL,增加了开发...
**优缺点分析:** - **优点:** 实现简单,无需额外封装。 - **缺点:** - 违背了ibatis的设计理念,即业务逻辑与数据访问层分离。 - 容易受到SQL注入攻击,安全性较差。 ##### 2. 使用Map容器 **实现方式:** ...
#### 二、iBatis的优缺点 **2.1 优点** - **易于掌握**: 学习成本低。 - **SQL优化能力强**: 提供更高的灵活性和控制力。 - **细粒度优化**: 支持针对具体需求进行精细化处理。 - **可维护性强**: SQL分离存储便于...
在Java Web开发中,iBatis和Hibernate是两种常用的持久层框架,它们各有优缺点,适用于不同的应用场景。下面将详细介绍两者的配置、特点和差异。 首先,iBatis是一个轻量级的ORM(Object-Relational Mapping)框架...
#### 四、iBatis的优缺点 1. **优点**: - 轻量级:iBatis相对简单,易于上手。 - 性能优势:由于iBatis允许开发者手动编写SQL语句,避免了动态SQL的开销,因此在某些场景下性能表现更佳。 - 灵活性高:iBatis...
6. **XML配置与注解配置**:比较使用XML配置和基于注解的配置方式来实现iBATIS和Spring的集成,分析各自的优缺点。 7. **事务管理**:讲解如何在Spring中配置和管理事务,确保数据库操作的一致性,例如使用`@...
而“工具”标签可能指的是在实际项目中如何选择和使用这两个工具,或者比较它们各自的优缺点,以帮助开发者决定何时使用iBatis,何时使用Hibernate。 至于文件“HibernateDAO2.java”,这很可能是包含一个基于...
### ibatis多对一代码示例解析 #### 一、ibatis简介与多对一映射概念 ...这两种方式各有优缺点,选择哪种方式取决于具体的应用场景和性能需求。在实际开发中,可以根据项目的实际情况灵活选择合适的映射方式。
Hibernate优缺点** - **优点**: - 自动管理对象的生命周期。 - 提供强大的ORM映射功能。 - 支持多种数据库。 - **缺点**: - 配置相对繁琐。 - 性能优化需要深入理解。 **2. Hibernate工作原理及为什么要用...
本篇文章主要探讨了从传统的JDBC到ORM(Object-Relational Mapping)框架的演变,以及各种Java框架如Struts、Spring和ORM框架如Hibernate的发展和优缺点。 JDBC(Java Database Connectivity)是Java与数据库交互的...
在轻量级和重量级实现中,这些层的实现方式有所不同,各有优缺点。 1. 轻量级实现: - 表现层:常使用基于Model-View-Controller(MVC)的框架,如Struts或JSF,提供用户界面交互。 - 业务层:使用JavaBean...
本文将深入探讨这两个框架的核心概念、优缺点以及实际应用。 ### IBatisNet IBatisNet(原名iBATIS.NET)是一个轻量级的ORM框架,由iBATIS的Java版本发展而来。它提供了一种将业务对象与SQL语句进行映射的方法,...
在面试中,对这些框架的深入理解,包括它们的配置、用法、优缺点和实际应用,都是评估开发者能力的重要标准。熟悉这些知识点能帮助开发者在面试中脱颖而出,同时也有助于在实际项目中更高效地工作。