mybaitis-plus 持久层高效开发, 懒人神器
mybaitis-plus 持久层高效开发, 懒人神器
- 引入mybatis-plus的jar包
- 添加mybatis-plus配置
- 添加mybatis-plus扩展功能
- 1. 公共字段自动填充
- a. 配置填充功能
- b. 设置需要填充的字段
- 2. 开启插件功能
mybatis-plus 可以非常方便快捷的帮我们处理数据数据库持久层的相关逻辑(单表查询基本都不用写sql和映射了), 提高开发效率
前提: 需要配合
mybatis
用
引入mybatis-plus的jar包
首先需要在pom.xml
中加入mybatis-plus
的包
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.6</version>
</dependency>
添加mybatis-plus配置
在配置文件中加入mybatis-plus
的扫描配置
mybatis-plus.mapper-locations=classpath:/mapper/msql/*.xml
mybatis-plus.type-aliases-package=com.wang.mapper.mysql
添加mybatis-plus扩展功能
1. 公共字段自动填充
a. 配置填充功能
package com.wang.cloud.store.common.conf.mybatisplus;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;import java.util.Date;/*** 配置公共字段自动填充功能 @TableField(..fill = FieldFill.INSERT)**/@Component
public class MetaObjectHandlerConfig implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {Object createTime = getFieldValByName("createTime", metaObject);Object updateTime = getFieldValByName("updateTime", metaObject);if (createTime == null)setFieldValByName("createTime",new Date(), metaObject);//mybatis-plus版本2.0.9+if (updateTime == null)setFieldValByName("updateTime",new Date(), metaObject);//mybatis-plus版本2.0.9+}@Overridepublic void updateFill(MetaObject metaObject) {Object updateTime = getFieldValByName("updateTime", metaObject);if (updateTime == null) {setFieldValByName("updateTime", new Date(), metaObject);//mybatis-plus版本2.0.9+}}
}
b. 设置需要填充的字段
在字段上加上注解, 如下:
@TableField(fill = FieldFill.INSERT)
private Date createTime;@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
2. 开启插件功能
package com.wang.cloud.store.common.conf.mybatisplus;import com.baomidou.mybatisplus.core.injector.ISqlInjector;
import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;@Configuration
@MapperScan("com.wang.cloud.store.mapper")//这个注解,作用相当于下面的@Bean MapperScannerConfigurer,2者配置1份即可
public class MybatisPlusConfig {/*** 分页插件*/@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}/*** sql注入器 逻辑删除插件* @return*/@Beanpublic ISqlInjector iSqlInjector(){return new LogicSqlInjector();}/*** sql性能分析插件,输出sql语句及所需时间* @return*/@Bean@Profile({"dev","test"})// 设置 dev test 环境开启public PerformanceInterceptor performanceInterceptor() {return new PerformanceInterceptor();}/*** 乐观锁插件* @return*/@Beanpublic OptimisticLockerInterceptor optimisticLockerInterceptor(){return new OptimisticLockerInterceptor();}}
mybaitis-plus 持久层高效开发, 懒人神器相关推荐
- [ 懒人神器 ] —— OO一键build:.zip - .jar
懒人神器 更新 大家注意一下,由于在写入MANIFEST的时候,Class-Path路径给的是 ../lib ,即上级目录的lib. 所以在对拍时如果手动移动了 jar包的位置,需要保证 lib/ 文 ...
- 懒人神器 !一个创意十足的 Python 命令行工具
作者 | 写代码的明哥 来源 | Python编程时光 当听到某些人说 xx 库非常好用的时候,我们总是忍不住想要去亲自试试. 有一些库,之所以好用,是对一些库做了更高级的封闭,你装了这个库,就会附带 ...
- 懒人神器:自动生成单元测试插件 Squaretest
你是否常常因代码需编写单元测试而痛苦不堪,你是否因单元测试历史债而惆怅不断,Squaretest或许能帮你消除痛苦消除惆怅 前言 一.Squaretest是什么? 二.使用步骤 1.引入插件 2.使用 ...
- [蜂群课堂]懒人精灵自动化进阶课程
零基础初级~进阶课程 学习级别 主课程列 段落课程列 上手 课节 开发准备 工具下载 懒人精灵简介 工具下载[使用]1~2课 IDE-项目属性 IDE-视图设置 IDE-打包设置 IDE-基本快捷键 ...
- 【SpringBoot】SpringBoot——整合持久层技术
文章目录 5. 整合持久层技术 5.1 整合JdbcTemplate 5.2 整合MyBatis 5.3 Spring Data JPA 5.3.1 JPA.Spring Data.Spring Da ...
- Mybatis持久层开发
文章目录 Mybatis持久层开发简要步骤 概述: 示例: 总结: 注意要点: 基于Mapper代理的示例 基于注解的示例 应用场景: 主键返回 批量查询 动态SQL 缓存 关联查询 延迟加载 逆向工 ...
- Java软件开发:自定义MyBatis持久层框架
自定义MyBatis持久层框架 1 框架概述 1.1 什么是框架 1.2 框架要解决的问题 1.3 软件开发的分层的重要性 2 MyBatis框架 3 JDBC编程 3.1 JDBC程序的回顾 3.2 ...
- 【Spring 持久层】Spring 事务开发、事务属性详解
持久层 事务回顾 Spring 事务编程开发 Spring 中的事务属性(Transaction Attribute) 隔离属性(ISOLATION) 传播属性(PROPAGATION) 只读属性(r ...
- 专业程序员开发-老狼孩插件懒人精灵版
老狼孩插件懒人版(综合分类版)v1.7.5有新版啦~~~ ---完全开放,免费使用,全新改版--- 1.优化-调试输出默认延迟1000毫秒 2.新增-更新类_阿里云json版热更新(定时关闭界面自动更 ...
- action请求_可可Radio第2848期:高效“懒人”的习惯-使用邮件发送请求(2)_可可之声...
可可电台,每期节目一话题,让英语磨练耳朵的同时学到更多有益的小知识,丰富知识的同时受益于生活. Habits of highly effective slackers 高效"懒人" ...
最新文章
- AC自动机 + 概率dp + 高斯消元 --- HDU 5955 or 2016年沈阳icpc H [AC自动机 + 概率dp + 高斯消元]详解
- java弹出微信扫一扫_JAVA实现调用微信js-sdk扫一扫
- 可重构人工智能设备展现出智能化前景
- Android 网络连接状态的监控
- 5分钟内搞定 Tomcat 的 SSL 配置
- python asyncio理解_深入理解asyncio(二)
- Linux虚机安装配置Tomcat
- 用python写helloworld_Python Helloworld程序简单实现
- CentOS6.x系统挂载NTFS分区的移动硬盘
- RedHat6.7安装教程,图解,超详细
- pl/sql实现打印九九乘法表
- 腾讯云dts使用注意事项
- 五脏六腑在脸上的反射区图片_“阳光运动场,亲子共成长”——赣县区白鹭乡中心幼儿园迎新年亲子趣味运动会...
- aliyun redis 链接超时_超详细的Redis入门指导
- foobar2000 for mac(经典音乐播放器)
- 车辆信息识别 车辆目标检测 车牌识别 车型识别 颜色 朝向 车大小识别
- 第68天-内网安全-域横向 PTHPTKPTT 哈希票据传
- 【CRM】开源CRM
- Velocity之vm页面注释
- VC dll依赖性查看工具depends
热门文章
- 计算机usb连接外设后不能启动,告诉你电脑usb接口没反应怎么办
- 注解和反射复习——B站
- 收费版ESX 与免费版ESXi的区别
- vant van-calendar日历组件默认选中明天而且只能选择明天
- Asp.net 周旭龙 系列总结
- SICP 练习1.8
- 计算机中什么是数组公式,EXCEL中数组的应用:什么是函数公式,什么是数组公式...
- 【学员问答】中国人民大学与加拿大女王大学中外合作办学金融硕士项目
- Guava--Splitter使用方式
- openwrt修改默认网关地址_修改宇视摄像机IP地址的方法