栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SSM项目集成mybatis-plus之自动填充字段、逻辑删除、分页插件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSM项目集成mybatis-plus之自动填充字段、逻辑删除、分页插件

SSM项目集成mybatis-plus之自动填充字段、逻辑删除、分页插件

1. 自动填充字段

1. 实现元对象处理器接口:com.baomidou.mybatisplus.core.handlers.metaObjectHandler2. 注解填充字段 @TableField(.. fill = FieldFill.INSERT) 生成器策略部分也可以配置!3. 将MymetaObjectHandler配置到Mybatis-plus中 2. 逻辑删除

1. 配置GlobalConfig2. 实体类字段上加上@TableLogic注解 3. 分页插件
spring配置文件将自动填充字段、逻辑删除、分页插件都配置上如下:


    
    
    
        
            
                
                    
                    	
                        
                    
                
            
        
    



    
    
        
    
    
    
        
            
            
        
    

1. 自动填充字段

官网教程针对springboot的配置如下

1. 实现元对象处理器接口:com.baomidou.mybatisplus.core.handlers.metaObjectHandler
@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()); // 起始版本 3.3.0(推荐使用)
        // 或者
        this.strictInsertFill(metaObject, "createTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
        // 或者
        this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
    }

    @Override
    public void updateFill(metaObject metaObject) {
        log.info("start update fill ....");
        this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
        // 或者
        this.strictUpdateFill(metaObject, "updateTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
        // 或者
        this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
    }
}	
2. 注解填充字段 @TableField(… fill = FieldFill.INSERT) 生成器策略部分也可以配置!
public class User {
    // 注意!这里需要标记为填充字段
    @TableField(.. fill = FieldFill.INSERT)
    private String fillField;

    ....
}

因为springboot底层帮我们做好了自动配置,我们只需要根据需求去添加组件即可。

但是SSM项目并没有自动配置功能,因此我们需要自己去配置。

@Component注解只是帮我们把MymetaObjectHandler注册到Spring容器中,但并不会把MymetaObjectHandler配置到Mybatis-plus中。

所以,除了上述两步,还需要将MymetaObjectHandler配置到Mybatis-plus中

3. 将MymetaObjectHandler配置到Mybatis-plus中

    
    



    
    
        
        

2. 逻辑删除 1. 配置GlobalConfig

        
        
    

    
        
        
            
                
                
            
        
    
2. 实体类字段上加上@TableLogic注解
@TableLogic
private Integer deleted;
3. 分页插件

3.4.0版本之前


	
	    
	        
	            
	            
	            
	            
	        
	    
	



    
    

3.4.0版本之后


   
   
       
           
               
                   
                       
                   
               
           
       
   

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/720502.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号