08. MyBatis简介

MyBatis简介

MyBatis是一个优秀的基于Java的持久层框架,内部封装了JDBC,开发者只需关注SQL语句本身(即业务),而不用再花费精力处理如注册驱动创建Connection配置Statement等繁琐过程(即技术)。MyBatis的目标是实现业务和技术的解耦。

MyBatis通过xml注解的方式将要执行的各种Statement、PreparedStatement等配置好,通过Java对象和Statement中SQL的动态参数进行映射生成最终执行的SQL语句,最后由MyBatis框架执行SQL并将结果映射成Java对象并返回。该过程称为ORM(Obejct Relational Mapping,对象关系映射)。这里的对象是POJO对象(Java原生对象)。

MyBatis只能在Java中使用。

体系结构

体系结构图

接口层

包含APIs:

  • 数据查询
  • 数据新增
  • 数据更新
  • 数据删除
  • 获取配置
    即增删改查和配置五类。

数据处理层

  • 参数映射:把Java对象映射为数据库中的一个表,把对象的属性值映射到SQL语句的字段值
    • 参数映射配置(通过配置进行映射)
    • 参数映射解析
    • 参数类型解析
  • SQL解析:把参数映射后对SQL语句进行拼接和解析
    • SQL获取
    • SQL解析
    • 动态SQL
  • SQL执行:执行解析后的SQL语句
    • SimpleExecutor
    • BatchExecutor
    • ReuseExecutor
  • 结果映射:把SQL语句执行的返回结果映射会Java对象
    • 结果映射配置
    • 结果类型转换
    • 结果数据拷贝

基础支持层

  • 连接管理
  • 事务管理
  • 配置加载
  • 缓存处理
  • 配置框架

MyBatis与Hibernate

Hibernate框架提供了全面的数据库封装机制,实现了“全自动”ORM,即不仅实现了POJO对象和数据库表之间的映射,也实现了SQL的自动生成和执行。

相对的,MyBatis只是“半自动”ORM。其主要功能是POJO对象和SQL语句之间的映射关系。也就是说,MyBatis不会自动生成SQL语句,具体的语句需要程序员编写,然后通过SQL语句映射配置,将SQL所需的参数以及返回的结果字段映射到指定的POJO对象。

hibernate的缺点

自定义了HQL方言,来实现自动SQL。

  • 增加了学习成本。
  • 缺乏灵活性。
  • 对多表联查不友好,只在单表操作有优势
  • 查询效率比MyBatis略低

MyBatis的特点

  • 其他都和hibernate相似,但是SQL语句由程序员写,所以提高了灵活性,提高了查询效率
  • 在XML中配置SQL语句,实现了SQL语句与代码的分离,给程序的维护带来了很大便利

MyBatis架构图

  • mybaits.xml : MyBatis配置文件
  • mapper.xml : 配置POJO和SQL的映射关系
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值