MyBatis

优点:

  • SQL被统一提取出来,便于统一管理和优化
  • SQL和代码解耦,将业务逻辑和数据访问逻辑分离
  • 提供映射标签,支持对象和数据库的ORM字段关系映射
  • 提供对象关系映射标签,支持对象关系组件维护
  • 灵活书写动态SQL,支持各种条件的动态SQL生成

缺点:

  • 编写SQL语句时工作量大,尤其是字段多、关联表多的时候更是如此
  • SQL语句以来数据库,导致数据库移植性差

工作流程

1、加载Mapper配置的SQL映射文件或SQL注解
2、通过读取配置文件,创建会话工厂SqlSessionFactory
3、根据非法工厂创建会话对象SqlSession,会话对象是一个接口,包含CRUD数据库操作的方法
4、创建Executor接口帮助会话对象执行操作
5、执行器将待处理的SQL信息封装到MappedStatement对象中
6、操作数据库,返回结果,结束流程
在这里插入图片描述

简单配置:

  • mybatis.config-location:配置mybatis-config.xml路径,其中配置MyBatis基础属性
  • mybatis.mapper-locations:配置Mapper对应的XML文件路径
  • mybatis.type-aliases-package:配置项目中实体类的包路径
  • mybatis.configuration.map-underscore-to-camel-case:下划线与驼峰时候对应
  • spring.datasource.*:数据源配置
  • Spring Boot启动时数据源会自动注入到SqlSessionFactory中,使用SqlSessionFactory构建SqlSession,再自动注入到Mapper中,编程直接使用Mapper即可

操作标签定义:

  • insert标签的属性
    1、id:命名空间中的唯一标识符
    2、useGeneratedKeys:开启主键自增回显,将自增长的主键值回显到形参中
    3、parameterType:参数类型
    4、keyColumn:数据库中主键的字段名称
    5、keyProperty:pojo中主键对应的属性
  • update和delete标签的属性
    1、parameterType:参数类型

注解:

  • 数据库操作注解:
    1、@Select:查询时使用
    2、@Insert:插入数据库时使用,直接传入实体类会自动解析属性到对应的值
    3、@Update:处理数据更新
    4、@Delete:处理数据删除
  • 参数传递:
    1、使用@Param定义自定义参数名
    2、使用Map传送多个参数
    3、直接使用对象

架构分解:

  • API接口层:提供给外部使用的接口API
  • 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等
  • 基础支撑层:负责最基础的功能支撑,包括链接管理、事务管理、配置加载和缓存处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值