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 持久层高效开发, 懒人神器相关推荐

  1. [ 懒人神器 ] —— OO一键build:.zip - .jar

    懒人神器 更新 大家注意一下,由于在写入MANIFEST的时候,Class-Path路径给的是 ../lib ,即上级目录的lib. 所以在对拍时如果手动移动了 jar包的位置,需要保证 lib/ 文 ...

  2. 懒人神器 !一个创意十足的 Python 命令行工具

    作者 | 写代码的明哥 来源 | Python编程时光 当听到某些人说 xx 库非常好用的时候,我们总是忍不住想要去亲自试试. 有一些库,之所以好用,是对一些库做了更高级的封闭,你装了这个库,就会附带 ...

  3. 懒人神器:自动生成单元测试插件 Squaretest

    你是否常常因代码需编写单元测试而痛苦不堪,你是否因单元测试历史债而惆怅不断,Squaretest或许能帮你消除痛苦消除惆怅 前言 一.Squaretest是什么? 二.使用步骤 1.引入插件 2.使用 ...

  4. [蜂群课堂]懒人精灵自动化进阶课程

    零基础初级~进阶课程 学习级别 主课程列 段落课程列 上手 课节 开发准备 工具下载 懒人精灵简介 工具下载[使用]1~2课 IDE-项目属性 IDE-视图设置 IDE-打包设置 IDE-基本快捷键 ...

  5. 【SpringBoot】SpringBoot——整合持久层技术

    文章目录 5. 整合持久层技术 5.1 整合JdbcTemplate 5.2 整合MyBatis 5.3 Spring Data JPA 5.3.1 JPA.Spring Data.Spring Da ...

  6. Mybatis持久层开发

    文章目录 Mybatis持久层开发简要步骤 概述: 示例: 总结: 注意要点: 基于Mapper代理的示例 基于注解的示例 应用场景: 主键返回 批量查询 动态SQL 缓存 关联查询 延迟加载 逆向工 ...

  7. Java软件开发:自定义MyBatis持久层框架

    自定义MyBatis持久层框架 1 框架概述 1.1 什么是框架 1.2 框架要解决的问题 1.3 软件开发的分层的重要性 2 MyBatis框架 3 JDBC编程 3.1 JDBC程序的回顾 3.2 ...

  8. 【Spring 持久层】Spring 事务开发、事务属性详解

    持久层 事务回顾 Spring 事务编程开发 Spring 中的事务属性(Transaction Attribute) 隔离属性(ISOLATION) 传播属性(PROPAGATION) 只读属性(r ...

  9. 专业程序员开发-老狼孩插件懒人精灵版

    老狼孩插件懒人版(综合分类版)v1.7.5有新版啦~~~ ---完全开放,免费使用,全新改版--- 1.优化-调试输出默认延迟1000毫秒 2.新增-更新类_阿里云json版热更新(定时关闭界面自动更 ...

  10. action请求_可可Radio第2848期:高效“懒人”的习惯-使用邮件发送请求(2)_可可之声...

    可可电台,每期节目一话题,让英语磨练耳朵的同时学到更多有益的小知识,丰富知识的同时受益于生活. Habits of highly effective slackers 高效"懒人" ...

最新文章

  1. AC自动机 + 概率dp + 高斯消元 --- HDU 5955 or 2016年沈阳icpc H [AC自动机 + 概率dp + 高斯消元]详解
  2. java弹出微信扫一扫_JAVA实现调用微信js-sdk扫一扫
  3. 可重构人工智能设备展现出智能化前景
  4. Android 网络连接状态的监控
  5. 5分钟内搞定 Tomcat 的 SSL 配置
  6. python asyncio理解_深入理解asyncio(二)
  7. Linux虚机安装配置Tomcat
  8. 用python写helloworld_Python Helloworld程序简单实现
  9. CentOS6.x系统挂载NTFS分区的移动硬盘
  10. RedHat6.7安装教程,图解,超详细
  11. pl/sql实现打印九九乘法表
  12. 腾讯云dts使用注意事项
  13. 五脏六腑在脸上的反射区图片_“阳光运动场,亲子共成长”——赣县区白鹭乡中心幼儿园迎新年亲子趣味运动会...
  14. aliyun redis 链接超时_超详细的Redis入门指导
  15. foobar2000 for mac(经典音乐播放器)
  16. 车辆信息识别 车辆目标检测 车牌识别 车型识别 颜色 朝向 车大小识别
  17. 第68天-内网安全-域横向 PTHPTKPTT 哈希票据传
  18. 【CRM】开源CRM
  19. Velocity之vm页面注释
  20. VC dll依赖性查看工具depends

热门文章

  1. 计算机usb连接外设后不能启动,告诉你电脑usb接口没反应怎么办
  2. 注解和反射复习——B站
  3. 收费版ESX 与免费版ESXi的区别
  4. vant van-calendar日历组件默认选中明天而且只能选择明天
  5. Asp.net 周旭龙 系列总结
  6. SICP 练习1.8
  7. 计算机中什么是数组公式,EXCEL中数组的应用:什么是函数公式,什么是数组公式...
  8. 【学员问答】中国人民大学与加拿大女王大学中外合作办学金融硕士项目
  9. Guava--Splitter使用方式
  10. openwrt修改默认网关地址_修改宇视摄像机IP地址的方法