01. Mybatis 简介

1. Mybatis 简介

Mybatis 是一款优秀的持久层框架, 支持定制化sql , 存储过程以及结果集映射. 笔者认为Mybatis有三大核心特性:

  • sql分离: sql 写在xml文件中, 与java 代码分离, 降低了sql 与java 代码的耦合度, 便于维护和升级
  • 结果集映射: Mybatis 的结果集映射是非常强大的, 可以将sql查询结果自动解析为任意对象, 而不仅仅局限于po 对象.
  • 动态sql: 提供了一组标签以支持不同条件的sql 拼接.

2. 对比JDBC & Hibernate

对比JDBC 和 Hibernate, Mybatis 算是一个半自动化的ORM 框架. 既让开发人员拥有sql 编写和优化的全部权限, 又解决了繁琐且效率低的传参和结果集解析操作.

2.1 对比JDBC

jdbc 是java操作数据库最底层的实现, 对比Mybatis 缺点较多:

  • 耦合性高: sql 夹杂在java 代码中, 耦合性高, 不便于维护和升级, 硬编码内伤
  • 手工进行参数赋值, 编程繁琐
  • 对查询结果进行手工解析, 开发效率极低

2.2 对比Hibernate

hibernate 是业界大名鼎鼎的全自动化全映射ORM框架, 意在消除sql 限制, 让不会写sql的开发人员也可以完成数据库模块儿的开发. 拥有独立的hql 语法进行查询. 对比Mybatis 有以下劣势:

  • 内部自动生成sql , 不便于对sql 进行优化
  • 虽然hql 支持自定义sql, 但是学习成本高. 而且对于复杂sql 而已, hql 也并不能完成支持
  • 全字段映射, 会查询数据库的全部字段, 性能较低. 想查询部分字段, 方式比较繁琐
  • 结果集封装只能是po 实体, 对普通vo 不能进行自动封装
JdbcMybatisHibernate
自动性半自动自动
单表API提供丰富的API
sql原生sql原生sql原生sql 和 HQL
结果集映射强大的结果集映射, 可映射POJO只能映射 PO
关系映射仅体现在查询时的结果集映射中可对关链表做级联操作
缓存一二级缓存一二级缓存
阅读sqlsql有格式,样式优美,易读sql 采用字符串拼接, 难读, 难维护
学习成本
掌握程度

3. Mybatis 缺点

  • 原生Mybatis 不支持分页, 需要借助于分页插件来实现
  • Mybatis 的单表操作比较麻烦, 需要手写sql. 影响开发效率.
  • 开发工具在Mapper 接口和xml文件直接跳转,比较麻烦. 可借助idea插件mybatisX .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值