首页 > 其他分享 >Mybatis-plus学习

Mybatis-plus学习

时间:2022-10-14 15:12:20浏览次数:53  
标签:ApiModelProperty metaObject private 学习 plus LocalDateTime Mybatis import fill

Mybatis-plus学习

自动填充功能

  1. 实体类字段添加注解

    package com.hw.mpstart.entity;
    
    import com.baomidou.mybatisplus.annotation.*;
    
    import java.io.Serializable;
    import java.math.BigDecimal;
    import java.time.LocalDateTime;
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Getter;
    import lombok.Setter;
    
    /**
     * <p>
     * 
     * </p>
     *
     * @author 黄伟
     * @since 2022-10-14
     */
    @KeySequence(value = "SEQ_JTEST")
    @Getter
    @Setter
    @TableName("J_TEST")
    @ApiModel(value = "JTest对象", description = "")
    public class JTest implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        @ApiModelProperty("名称")
        private String name;
    
        @ApiModelProperty("密码")
        private String pw;
    
        @ApiModelProperty("备注")
        private String remark;
    
        @ApiModelProperty("主键")
        @TableId
        private String id;
    
        @ApiModelProperty("创建日期")
        @TableField(fill = FieldFill.INSERT)
        private LocalDateTime createTime;
    
        @ApiModelProperty("修改日期")
        @TableField(fill = FieldFill.INSERT_UPDATE,update = "sysdate")//自动填充注解
        private LocalDateTime modifyTime;
    
        @ApiModelProperty("默认值")
        @TableField(fill = FieldFill.INSERT)//自动填充注解
        private String defual;
    
        @ApiModelProperty("版本号")
        @TableField(fill = FieldFill.INSERT)
        @Version
        private Integer version;
    
        @ApiModelProperty("是否删除")
        @TableField(fill = FieldFill.INSERT)
        @TableLogic
        private BigDecimal isdelete;
    
    
    }
    
    
  2. 添加处理器类

    package com.hw.mpstart.handler;
    
    import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.ibatis.reflection.MetaObject;
    import org.springframework.stereotype.Component;
    
    import java.math.BigDecimal;
    import java.time.LocalDateTime;
    
    @Slf4j
    @Component
    public class MyMetaObjectHandler implements MetaObjectHandler {
        @Override
        public void insertFill(MetaObject metaObject){
            log.info("start insert fill ...");
            this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
            this.strictInsertFill(metaObject, "modifyTime", LocalDateTime.class, LocalDateTime.now());
            this.strictInsertFill(metaObject,"defual",String.class,"默认值");
            this.strictInsertFill(metaObject,"version", Integer.class,1);
            this.strictInsertFill(metaObject,"isdelete",BigDecimal.class,new BigDecimal(0));
    
        }
        @Override
        public void updateFill(MetaObject metaObject){
            log.info("start update fill ...");
            this.strictUpdateFill(metaObject,"modifyTime",LocalDateTime.class,LocalDateTime.now());
        }
    }
    
    
  3. 使用乐观锁导致时间无法自动更新解决办法

     @TableField(fill = FieldFill.INSERT_UPDATE,update = "sysdate")//实体类字段注解添加update = "sysdate",其中sysdate是对应数据库类型的系统日期获取方法
    

标签:ApiModelProperty,metaObject,private,学习,plus,LocalDateTime,Mybatis,import,fill
From: https://www.cnblogs.com/HW1314/p/16791629.html

相关文章

  • 前端学习网址推荐
    HTMLW3CSchool:​​https://www.w3school.com.cn/html/index.asp​​CSSCSSTricks:​​https://css-tricks.com/​​​张鑫旭博客:​​https://www.zhangxinxu.com/wordpres......
  • 撬开多线程的大门——学习多线程必须掌握的基本概念
    1.进程进程的概念从字义上理解相对还是比较抽象的,但进程实际上对我们并不陌生,可以说它无时不刻的伴随着我们的生活。当你每天上班打开电脑,运行微信与好友通讯、运行浏览......
  • mybatisplus generator
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:sc......
  • spring整合mybatis
    1.pom.xml中添加依赖<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.16.RELEASE</vers......
  • 深度学习算法工程师内心感悟
    某网友:数据放在第一位,成也数据,败也数据。深刻认识数据的重要性,把数据集维护好,数据量够了,再谈后面的模型优化,数据都不干净,用再好的模型,也不会出好的结果。启动开发前,多问......
  • 【源码级】MyBatis缓存策略
    缓存就是内存中的数据,常常来自对数据库查询结果的保存。使用缓存,我们可以避免频繁的与数据库进行交互,进而提高响应速度MyBatis也提供了对缓存的支持,分为一级缓存和二级缓存......
  • 2022-2023-1 20221312 《计算机基础与程序设计》第七周学习总结
    ------------恢复内容开始------------作业信息班级链接:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.htm......
  • Java学习之路:流程控制
    2022-10-1110:58:41......
  • Fabric 源码学习:如何实现批量管理远程服务器?
    前不久,我写了一篇《​​Fabric教程​​》,简单来说,它是一个用Python开发的轻量级的远程系统管理工具,在远程登录服务器、执行Shell命令、批量管理服务器、远程部署等场景......
  • [学习笔记]参数服务器
    好家伙今天翻博客发现了之前的参数服务器相关的东西没有发布,今天发出来吧~~~~~~~~~~~~~~~~参数服务器,顾名思义就是参数的服务器[doge]咳咳参数服务器在ROS中主要用于实现不同节点之间的......