mybatispuls

今天和大家分享一下个人 对mybatis 的增强版 mybatispuls 的实操解析

首先呢 我们先了解 mybatis 主要的一些使用范围 我个人是这么理解的 它是一款半自动的ORM 持久化框架 主要是负责于一些数据文件的持久化操作和映射的;ORM其实就是在数据库实体 和业务交互中间做映射的;
对于mybatispuls 可不止是快速生成我们的数据库原装代码和封装接口的CRUD操作;

我们今天要讲的呢,就是mybatispuls 基于mybatis增强版的一些使用注解的策略和理解 如:如何使用mybatispuls 注解完成生成主键的策略 ,条件构造器,使用逻辑删除,填充策略,在mybatispuls中使用乐观锁在测试单多线程下对版本控制变更的情况,对于mybatispuls 封装的CRUD的理解等 ;

我们简单的搭建一个springboot环境 :(内容过于简单没太详细就简单举例)在这里插入图片描述这个项目只需要配置一个application 和pom 中的依赖配置即可 ‘只作为展示使用;

进入项目先看pom依赖: 只要配置 有 mybatis-puls-springboot-stanrt AND mysql AND lombok 注解文件 AND junlt测试 AND springbootweb AND 等依赖即可下面详情展示
在这里插入图片描述接着对application配置数据库驱动即可
在这里插入图片描述
在这里插入图片描述我们只需要建立生成实体即可不需要使用myabtispuls生成器 使用 ,接口的话直接继承 mybatis puls BaseMapper的方法 里面封装了丰富的CRUD方法 实体的这些注解方法我都已经提前写好了
在这里插入图片描述

在这里插入图片描述

1:使用mybatis puls@tableid 注解使用iead操作主键的策略:
在这里插入图片描述
这里的我们使用@tableid 对主键 进行自增长操作 选用Auto (前提数据库主键为自增长状态)
在此之前 我先简单介绍一些 @tableid 中 Idtype中的一些方法的作用 ID_WORKER ,ID_WORKER_STR,UUID ,INPUT …这些都是不同数据类型的全局主键
我们的字段选用了@tableid 的时候 选择我们使用的方法类型 我们选用mybatispuls 封装的方法进行对主键策略的展示 不同的主键策略 主键的展示适用于不同场景在这里插入图片描述

我们使用Auto 这个方法的主键主要是不需要我们自己去set 主键通过自增长的方式对主键进行 创建然后对我们创建的添加方法的主键进行展示
其他的方法 主要对应的数据类型不同 看使用场景

然后我们在接着下一个 填充策略 下面我演示一下对于数据库 填充策略的使用 我们先在数据库中创建2个时间字段 默认值更改为 CURRENT_TIMESTAMP 引用注解 @tableFirleId 进行字段填充
在这里插入图片描述在这里插入图片描述 一个是创建日期时间,一个是更新时间 这里我们需要引用一个类 继承MetaObjectHandler 接口
在这里插入图片描述

在方法中保存我们的字段 在test测试操作方法的时候 就能够对我们对应的字段完成了进行插入更新填充

3:在mybatispuls中使用乐观锁版本更新处理机制
我们在使用乐观锁的实现方式: 一般是在我们取得记录的时候 会获取当前的vesion 我们更新数据的时候会自动带上这个vesion 当这个乐观锁执行成功的时候就会自动从默认值中追+1
下面大概介绍一下使用方法 在数据库中创建Version字段 默认值为1 用来测试乐观锁的执行机制
在这里插入图片描述使用注解@Version
在这里插入图片描述
我们这里需要自己创建一个类
添加事务操作 使用@Bean 进行默认配置
在这里插入图片描述
然后我们这边在测试中测试了一下 乐观锁在模仿单线程和多线程里的执行情况
在这里插入图片描述正常情况单线程下 执行结果vesion 版本会增加1 但是在模仿多线程的情况下 版本不会发生变化

4:
下面大概介绍一下对于构造器的Wrapper使用
在这里插入图片描述
其他一些方法没有展示因为可能工作涉及不到 简单介绍2个mybatispuls比较常见的构造方法 使用2种
一种是通过map 键值对方式对测试模糊查询的方法
一种通 过between 方法 查询 参数之内的 查询方法 都是由selectcount方法存储

5: 然后我们在来观察一下就是对于我们慢sql调优的操作 正常我们会设置我们的项目中的一些方法 会对方法的sql 进行一个设置时长如果超出我们规定设置的时间 就会认定为慢sql 下面我来展示一下性能分析器

首先我们需要配置在application中配置 环境
在这里插入图片描述
然后还是使用类配置我们需要设置的时间当我们在方法中测试的时候会去对慢sql进行筛查 并对日志格式化 如果超出时间就会日志就会报错
在这里插入图片描述6:最后我们讲解一下关于逻辑删除首先呢 我们要知道 逻辑删除的意义在哪里一般我们在数据库中配置一个deleted 字段 去充当使用逻辑删除 设置默认值为0 删除成功则会变为1
在这里插入图片描述正常我们在进行逻辑删除的同时字段数据库本身是不会发生改变的 当我们前台要删除某一个数据的时候 我们后台数据库其实还保存了原来的数据 只是针对于前台展示的数据做了变动 正常的物理删除则是连接数据库数据一起删除
下面我演示一下逻辑删除
需要在application 环境中配置逻辑删除方法
在这里插入图片描述
在实体类中通过@Bean 配置逻辑删除方法
在这里插入图片描述
当我们使用删除某一列集合的时候 字段如果默认值增加 就表示逻辑删除成功 但是不影响数据库内的数据

后面也就是一些mybatispuls 方法的使用 没有太多实战性 mybatpuls 结束 end…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值