Mybatis与JDBC和Hibernate的比较

1.概述

MyBatis是最近几年非常流行的数据访问层(DAO)框架,能够简单高效的实现对数据层访问

2.Mybatis与JDBC和Hibernate的比较

2.1JDBC

java原生的关系型数据库访问方式

  • 每次操作数据库都需要获取连接关闭连接,在大量访问数据库时,频繁的开关连接消耗性能。
  • 需要手动编写sql,有学习成本
  • 查询出的结果需要手动进行封装到bean
  • 没有缓存处理机制
  • sql语句写死在程序中,需要修改sql必须修改源文件

2.2Hibernate

基于面向对象理念设计的DAO层框架,基本理念就是维护对象到表的映射关系,通过操作对象操作表中的数据,从而可以减少甚至杜绝sql的使用

类 ------------------- 表
对象                  表记录

传统的数据库处理方式,将对象和表记录存在频繁的转换,很麻烦,于是人们想:如果将对象和表记录先转换好,封装到Entity-实体,这样就表示了它们之间的关系,以后操作对象就被翻译成对表的操作,那么以后就不用关心表,只需要关心对象,程序中只要操作对象就能操作数据库,从数据库查询的数据也会转换为对象,可以不用在写sql----这就是衍生出来的hibernate 。但是hibernate 有很多缺陷,过于理想化) 

缺点如下: 

  • 相对比较沉重,效率不好
  • 当涉及到比较复杂的查询时Hibernate的操作对象的方式用起来非常麻烦,甚至无法实现,只能用sql操作
  • 底层需要频繁的拼接sql,产生大量冗余的sql

2.3MyBatis

是一种半自动对象-表映射关系的DAO层框架,可以自动的进行对象的封装,但是sql仍然需要自己来写。

结合了JDBC和Hibernate的优点,可以手写sql灵活实现数据访问,自动封装数据,减少冗余代码

mybatis的结构如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章