相关文章:
Hibernate VS iBATIS
鉴于反复出现讨论hibernate适用性问题的帖子,这次希望有个定论
jdbc还是ibatis?
推荐圈子: Tapestry
更多相关推荐 iBATIS DB Layer 不能算是一个 O/R mapping
不过他可以简化 DAO 的工作
可以算是个 SQL Mapping ...
他的观念很简单
可以下载 iBATIS 的 jPetstore 当作 sample code 来学习
最重要的是 com.ibatis.jpetstore.persistence.*
你可以看到 sql/*.xml 就是 sql mapping
简单的 mapping sql 观念 对於开发及维护是一件很轻松的事情
而他的 MVC Framework 是采用 struts
可以当作基本教材来学习 jsp/servlet MVC 开发
另外, hibernate 是完全的 O/R mapping
你可以看一下 Clinton Begin ( iBATIS DB 作者 )所做的评论
http://sourceforge.net/forum/message.php?msg_id=2141106
这句话, 也是我最喜欢对其他 爱拿 xxx 和 yyy 比较的人 所说的话
In the end the choice is yours and nobody can tell you what the right one is,
Trust only yourself, draw your own conclusions and do lots of testing!
我最欣赏下面这句话,这也是我的心声:
In the end the choice is yours and nobody can tell you what the right one is, Trust only yourself, draw your own conclusions and do lots of testing!
我从来都不向别人直接推荐用Hibernate,因为Hibernate也不是万能的,不管是Hibernate也好,JDO也好,CMP也好,JDBC也好,你觉得哪个适合你,你就用哪一个。所谓各花入各眼。只不过对Hibernate既不了解也不研究,就胡说八道,莫名其妙的疯狂排斥Hibernate,就只能从自己身上找原因了。
Clinton Begin已经说的很明确了,如果你开发一个新系统,希望完全控制对象模型,进行数据库设计,那么Hibernate是一个好的选择;如果你工作在一个很古老的数据库系统上,数据库设计非常糟糕,你又没有权利去改变数据库设计,那么iBATIS更合适一些。
http://sourceforge.net/forum/message.php?msg_id=2141106
正在讨论iBATIS是否要加入Apache Project。我个人觉得还是不要加入的好,现在Apache Project已经成了一个大杂烩。加入Apache Project以后,大部分项目都失去了特色。
我没有实际用iBATIS,但是通读了一遍iBATIS的文档。我的看法如下:
iBATIS非常简单易学,Hibernate非常复杂,门槛很高,如果你寻求快速上手,iBATIS是比较好的选择。
iBATIS需要手写sql语句,也可以生成一部分,Hibernate则完全自动生成,同样的需求,iBATIS的工作量比Hibernate要大很多。类似的,如果涉及到数据库字段的修改,Hibernate由于不需要手写sql,修改的地方很少,而iBATIS要把那些sql mapping的地方一一修改。
iBATIS不容易做好Cache,要相当小心,而Hibernate完善的封装了持久操作,Cache是完全透明的。
iBATIS给我一种半对象化半关系化模型的感觉,iBATIS可能不适合对象化设计思路,例如iBATIS至今没有解决n+1条select的问题,这使得使用iBATIS的时候应该严格遵循数据库字段一一对应映射的规则。当然这种方式也许很适合习惯了数据库建模思路的开发人员。
以数据库字段一一对应映射得到的PO和Hibernte这种对象化映射得到的PO是截然不同的,本质区别在于这种PO是扁平化的,不像Hibernate映射的PO是可以表达立体的对象继承,聚合等等关系的,这将会直接影响到你的整个软件系统的设计思路。
实际上在我知道Hibernate之前,我自己已经采用类似iBATIS那种思路来做过一个小项目了,事实证明,这种方式到也切实可行,除了不够优雅之外。
分享到:
相关推荐
1. **iBATIS概述**:介绍iBATIS的基本概念、设计理念和核心组件,包括SqlMapConfig.xml配置文件、SqlMap接口和SqlMapClient对象等。 2. **映射文件**:详述了SqlMap映射文件的结构和元素,如sql、select、insert、...
### iBATIS缓存介绍 #### 一、缓存介绍 **1.1 缓存对象** 理论上,Web分层设计的各个层都可以有缓存,Web中的任何对象都可以成为缓存的对象。例如: - **HTTP请求结果的缓存**:如页面数据或API响应。 - **...
iBatis技术框架介绍。ibatis2.x教程。
ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园
Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...
和众多的 SourceForge 开源项目一样,iBATIS 曾经也是其中的一员。在2004年11月3日成功地成为了 Apache Incubator 下的子项目。 iBATIS 包括 for Java 和 for .NET 两个版本,for Java 版提供了SQL Maps 和 DAO 框架...
#### 新功能介绍 iBATIS3的主要新功能包括: 1. **增强的XML配置**:iBATIS3引入了一个更强大的XML配置机制,允许开发者通过XML文件定义数据源、事务管理器、映射器等组件,使得配置过程更为直观且易于维护。 2. ...
### IBATIS介绍 #### 一、IBATIS概述 IBATIS是一个开源的持久层框架,它专注于SQL语句的处理,通过提供强大的映射机制来实现对象关系映射(ORM)。相比于其他ORM框架,IBATIS更注重于SQL语句本身,允许开发者更加...
### 详细介绍Ibatis的用法 #### Ibatis概述与特点 Ibatis是一个开源的持久层框架,它通过简单的XML配置文件将JavaBean映射到SQL语句上,从而极大简化了对关系数据库的操作。与其他数据库持久层框架如JDO、...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,从而更好地管理数据库操作。Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,...
《深入解析iBatis源码》 iBatis,一个优秀的Java持久层框架,以其轻量级、灵活的特性在众多ORM(Object-Relational Mapping)框架中独树一帜。iBatis的核心在于它的SQL映射机制,它将数据库操作与业务逻辑解耦,...
### ibatis和Hibernate的简单介绍 #### 一、ibatis简介 ibatis是Apache软件基金会的一个开源项目,它提供了一种轻量级的Java持久层框架。ibatis的核心功能是将SQL语句与Java代码分离,使开发人员可以更加专注于...
1. 安装和配置:介绍如何将Ibatis集成到项目中,包括Maven或Gradle依赖、Spring整合等。 2. 映射文件和SQL语句:讲解如何编写XML映射文件,包括插入、更新、删除和查询等操作。 3. 动态SQL:Ibatis的动态SQL功能...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写SQL语句上,而无需关注JDBC代码的编写。Ibatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的...
iBatis是一个轻量级的Java持久层框架,它提供了一种O/R Mapping(对象关系映射)解决方案,使得开发者可以方便地将SQL查询与Java代码进行集成。相较于Hibernate等更为复杂的ORM框架,iBatis以其简洁、易上手的特点受...
iBATIS是一个由Clinton Begin创建,目前由Apache基金会支持的持久化框架,它专注于数据库查询的简化,尤其在JDBC编程方面提供了极大的便利。相对于全自动化ORM解决方案如Hibernate,iBATIS被称为“半自动化”ORM实现...
书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。《iBATIS实战》的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该...