mybatis plus springboot test_跟我学Springboot开发后端管理系统3:Mybatis-Plus实战2
文章来源:https://mp.weixin.qq.com/s/YL0FDjn8BczNfIJJ9DgMRA
原文作者:forezp
来源平台:微信公众号
在上一篇文章讲述了如何使用Mybatis-plus自动生成代码,生成的代码具有单表操作数据库的能力,节约了开发时间。然后讲述了如何在Spring Boot中整合Mybatis-Plus。这篇文章讲述如何使用Mybatis-Plus的增强功能:自动填充功能和查询分页功能。
Mybatis-Plus自动填充功能
在Matrix-web项目中,数据库的所有表都有四个公共字段,即create_by、create_time、update_by、update_time ,即存储了表数据的创建人、创建时间、更新时间、更新人。在对表插入一条数据的时候,需要自动填充四个字段,对表数据更新操作,需要更新后2个字段。但是如果在每个插入和更新业务逻辑里面, 手动的填充这四个字段,增加了工作量。幸好mybatis-plus有一个自动更新的插件。
实现自动填充功能很简单,只需要实现MetaObjectHandler接口和实现填充逻辑,并把它注入到spring ioc容器中即可。其中下面的代码UserUtils.getCurrentUserWithDefault();即获取当前请求的用户,在权限那一篇文章有讲到过,在这里不再重复;然后加上注解@Component注入到Spring ioc容器里面去。
@Component
- 字段必须声明TableField注解,属性fill选择对应策略,该申明告知 Mybatis-Plus 需要预留注入 SQL 字段
- 填充处理器MyMetaObjectHandler 在 Spring Boot 中需要声明@Component 注入
- 必须使用父类的setFieldValByName()或者setInsertFieldValByName/setUpdateFieldValByName方法,否则不会根据注解http://FieldFill.xxx来区分。
public
然后再表中映射的实体类,加上该上面的相应的注解即可,比如在Matrix-Web中所有数据库映射的实体类都继承BaseEntity。
@Data
比如SysUser实体类继承上面的BaseEntity。
@Data
当调用SysUserMapper插入SysUser数据的时候,就会自动在数据库中插入create_by、create_time、update_by、update_time这四个数据。
分页插件
在Web开发中,经常用到分页插件。Mybatis-Plus提供了这样的能力。需要在spring ioc容器注入PaginationInterceptor,代码如下:
@Configuration
现在以一个具体的案例来讲述如何分页。比如查询SysUser的分页。在Controller层:
@GetMapping
在上面的代码中需要必传2个参数,page和pageSize,即页数和每页的数量。PageUtils.check(page, pageSize)是检查page和pageSize是否合理。RespDTO是返回给前端的DTO类。具体代码如下:
public
PageResultsDTO是存放分页的数据和分页的元数据,代码如下:
public
Sevice层代码,需要将sysUserMapper查询的数据包装到PageResultsDTO中代码如下:
public
SysUserMapper的searchUsers方法会查询数据库,获取数据:
@Mapper
SysUserMapper的查询数据库的sql语句,需要自己写,在SysUserMapper.xml中,
<
这是完整的使用Mybatis-Plus插件分页的案例。前端代码就不在这里讲解了,在前端界面展示的分页效果如下:
总结
这篇文章讲述了如何使用Mybatis-Plus的增强功能,自动填充和分页。下篇文章将讲述如何使用Durid连接池和Sharding-JDBC实现数据库读写分离。
mybatis plus springboot test_跟我学Springboot开发后端管理系统3:Mybatis-Plus实战2相关推荐
- 跟我学Springboot开发后端管理系统3:Mybatis-Plus实战2
在上一篇文章讲述了如何使用Mybatis-plus自动生成代码,生成的代码具有单表操作数据库的能力,节约了开发时间.然后讲述了如何在Spring Boot中整合Mybatis-Plus.这篇文章讲述如 ...
- 跟我学Springboot开发后端管理系统2:Mybatis-Plus实战
在Matrix-Web项目中使用Mybatis-Plus作为操作数据库的ORM框架.在市面上常用的ORM框架有hibernetes.mybatis.JPA等,那么为什么选择Mybatis-Plus呢? ...
- 跟我学Springboot开发后端管理系统5:数据库读写分离
在Matrix-web后台管理系统中,使用到了数据库的读写分离技术.采用的开源的Sharding-JDBC作为数据库读写分离的框架.Matrix-Web后台数据库这一块采用的技术栈如下: 使用Myba ...
- 跟我学Springboot开发后端管理系统9:AOP+logback+MDC日志输出
MDC介绍 在比较复杂的应用中,一个请求需要走很多个方法的处理,怎么样才能快速查找一个请求的全部日志呢.在分布式系统中,我们可以用链路追踪,比如zipkin.skywalking去快速查找日志,从而定 ...
- 跟我学Springboot开发后端管理系统8:Matrxi-Web权限设计实现
上篇文章讲述了Matrix-web整体实现的权限控制的思路.现在来回顾一下: 首先,用户需要登录,填用户名.密码,后端接收到登录请求,进行用户.密码的校验,校验成功后则根据用户名生成Token,并返回 ...
- 跟我学Springboot开发后端管理系统7:Matrxi-Web权限设计
Matrxi-Web权限设计 对于一个后端系统来说,权限是基础设施,是安全保障.没有权限,系统可能随时面临各种风险,所以权限设计对后端系统来说至关重要.在Javaweb开发中,有很多权限开发的框架,比 ...
- 跟我学Springboot开发后端管理系统6:缓存框架Caffeine
Caffeine是一个基于Java8的高性能缓存框架,号称趋于完美.Caffeine受启发于Guava Cache的API,使用API和Guava是一致的.它借鉴了Guava Cache和Concur ...
- 跟我学Springboot开发后端管理系统4:数据库连接池Druid和HikariCP
上一篇文章主要讲解了如何再Matrix-Web中使用Mybatis-Plus,Mybatis-Plus作为Orm框架,连接数据库需要连接数据库的依赖.WEB 系统高并发环境下,频繁的进行数据库连接操作 ...
- java基于springboot+vue的驾校学车报名预约管理系统 nodejs+element
驾校预约管理系统是基于java编程语言,springboot框架,mysql数据库开发,本系统分为用户,教练,管理员三个角色:用户注册登陆可以查看驾校公告信息,在线预约教练,取消预约等操作:教练可以查 ...
最新文章
- 你绝没用过的一款高级空间可视化工具
- python 继承和多态
- 基本运算符与if while详解:
- Marketing Cloud profile界面功能介绍
- 新唐M031学习笔记(一)定时器基础计数应用
- 线性表------栈
- 数值计算算法-多项式插值算法的实现与分析
- Django——序列化与反序列化
- 计算机视觉,不可能凉!
- KOFLive Beta Daily-Scrum 2
- 【Redis】Redis 替代方案
- ACM_栈的压入、弹出序列
- 一个CPU核可以设计为两个以上的线程
- HttpSession基础
- Oracle 发送QQ邮件监控定时任务
- android开发中常用的占位符
- 狂神说的全部笔记_聪明人的方格笔记术
- a标签去下划线 菜鸟教程_HTML下划线标签示例教程
- 新手小白大学生,在宿舍做短视频自媒体,两个星期收益1700多
- [论文写作笔记] C8 讨论用于增加论文厚度
热门文章
- 虚拟机centos7 git clone特别慢_从文件生命周期看GIT的提交流程
- mysql sql exists_数据库sql语句的exists总结
- debian 查看php版本,在debian 9中为php7.0-fpm启用状态查询
- toad for mysql调试存储过程_【oracle】oracle 调试 存储过程
- Windows核心编程——内存映射
- vector内存分配和回收机制
- 如何排查mysql数据乱码_如何解决MYSQL数据库中文乱码问题?
- git命令详解( 六 )
- jvm 虚拟机的组成部分
- 动态规划(树形DP):HDU 5886 Tower Defence