Hibernate和Ibatis区别
2015-07-29 17:48
211 查看
开源
优秀的o/r mapping框架
相对hibernate“o/r”而言,ibatis是一种“sql mapping”的orm实现。
hibernate对数据库结构提供了较为完整的封装,hibernate的o/r mapping实现了pojo 和数据库表之间的映射,以及sql
的自动生成和执行。程序员往往只需定义好了pojo 到数据库表的映射关系,即可通过hibernate 提供的方法完成持久层操作。程序员甚至不需要对sql 的熟练掌握, hibernate/ojb 会根据制定的存储逻辑,自动生成对应的sql 并调用jdbc 接口加以执行。
而ibatis 的着力点,则在于pojo 与sql之间的映射关系。也就是说,ibatis并不会为程序员在运行期自动生成sql 执行。具体的sql 需要程序员编写,然后通过映射配置文件,将sql所需的参数,以及返回的结果字段映射到指定pojo。
相对hibernate而言,ibatis
以sql开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。
系统数据处理量巨大,性能要求极为苛刻时,ibatis会有更好的可控性和表现。
batis需要手写sql语句,也可以生成一部分,hibernate则基本上可以自动生成,偶尔会写一些hql。同样的需求,ibatis的工作量比hibernate要大很多。类似的,如果涉及到数据库字段的修改,hibernate修改的地方很少,而ibatis要把那些sql
mapping的地方一一修改。
以数据库字段一一对应映射得到的po和hibernte这种对象化映射得到的po是截然不同的,本质区别在于这种po是扁平化的,不像hibernate映射的po是可以表达立体的对象继承,聚合等等关系的,这将会直接影响到你的整个软件系统的设计思路。
hibernate现在已经是主流o/r mapping框架,从文档的丰富性,产品的完善性,版本的开发速度都要强于ibatis。
优秀的o/r mapping框架
相对hibernate“o/r”而言,ibatis是一种“sql mapping”的orm实现。
hibernate对数据库结构提供了较为完整的封装,hibernate的o/r mapping实现了pojo 和数据库表之间的映射,以及sql
的自动生成和执行。程序员往往只需定义好了pojo 到数据库表的映射关系,即可通过hibernate 提供的方法完成持久层操作。程序员甚至不需要对sql 的熟练掌握, hibernate/ojb 会根据制定的存储逻辑,自动生成对应的sql 并调用jdbc 接口加以执行。
而ibatis 的着力点,则在于pojo 与sql之间的映射关系。也就是说,ibatis并不会为程序员在运行期自动生成sql 执行。具体的sql 需要程序员编写,然后通过映射配置文件,将sql所需的参数,以及返回的结果字段映射到指定pojo。
相对hibernate而言,ibatis
以sql开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。
系统数据处理量巨大,性能要求极为苛刻时,ibatis会有更好的可控性和表现。
batis需要手写sql语句,也可以生成一部分,hibernate则基本上可以自动生成,偶尔会写一些hql。同样的需求,ibatis的工作量比hibernate要大很多。类似的,如果涉及到数据库字段的修改,hibernate修改的地方很少,而ibatis要把那些sql
mapping的地方一一修改。
以数据库字段一一对应映射得到的po和hibernte这种对象化映射得到的po是截然不同的,本质区别在于这种po是扁平化的,不像hibernate映射的po是可以表达立体的对象继承,聚合等等关系的,这将会直接影响到你的整个软件系统的设计思路。
hibernate现在已经是主流o/r mapping框架,从文档的丰富性,产品的完善性,版本的开发速度都要强于ibatis。
相关文章推荐
- Android学习笔记:Home Screen Widgets(1):大约Widget
- Linux常用命令大全3
- python设计模式之备忘录模式
- nginx 负载均衡
- 关于IOS资源图片命名问题。
- 线程创建与终止(Linux_C++)
- Mysql "Cannot create windows service for mysql.error:0" 安装删除windows服务
- LeetCode(113) Path Sum II
- Linux常用命令大全
- 应一个好友要求写一个SpringJDBC 的文章 , 介绍返回操作数据库最新id写法
- Android Touch事件传递机制解析
- 创建UILable的时候,可以根据文字算出文字所占区域大小的方法
- 【lca】lca的tarjan写法 poj1330
- Netty
- Hbase系统架构及数据结构
- hdu杭电1856 More is better【并查集】
- 跳表
- git简单使用
- Linux中常用操作命令
- oracle表查询(5)