[mybatisplus]常用注解_@tablename_@tableid_@tablefield_@tablelogic&&通过全局配置配置主键生成策略(代码片段)

唐火 唐火     2022-12-14     705

关键词:

常用注解

@TableName

  • 设置实体类所对应的表名

如果全部表都有某个前缀,难道我们要通过一个一个加注解的方式来解决实体类对应表名问题吗?

我们可以通过配置文件来解决这个问题:

@TableId

  • 将属性所对应的字段指定为主键

@TableId的value属性

@TableId的type属性

/*
 * Copyright (c) 2011-2022, baomidou (jobob@qq.com).
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.baomidou.mybatisplus.annotation;

import lombok.Getter;

/**
 * 生成ID类型枚举类
 *
 * @author hubin
 * @since 2015-11-10
 */
@Getter
public enum IdType 
    /**
     * 数据库ID自增
     * <p>该类型请确保数据库设置了 ID自增 否则无效</p>
     */
    AUTO(0),
    /**
     * 该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)
     */
    NONE(1),
    /**
     * 用户输入ID
     * <p>该类型可以通过自己注册自动填充插件进行填充</p>
     */
    INPUT(2),

    /* 以下3种类型、只有当插入对象ID 为空,才自动填充。 */
    /**
     * 分配ID (主键类型为number或string),
     * 默认实现类 @link com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator(雪花算法)
     *
     * @since 3.3.0
     */
    ASSIGN_ID(3),
    /**
     * 分配UUID (主键类型为 string)
     * 默认实现类 @link com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator(UUID.replace("-",""))
     */
    ASSIGN_UUID(4);

    private final int key;

    IdType(int key) 
        this.key = key;
    


将生成id的算法改成自增算法(默认雪花算法)

常用的主键策略:

描述
IdType.ASSIGN_ID(默认)基于雪花算法的策略生成数据id,与数据库id是否设置自增无关
IdType.AUTO使用数据库的自增策略,注意,该类型请确保数据库设置了id自增,否则无效

通过全局配置配置主键生成策略

@TableField

  • 指定属性所对应的字段名

可以运行,mybatisplus默认驼峰命名法

@TableLogic

逻辑删除

  • 物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除的数据
  • 逻辑删除:假删除,将对应数据中代表是否被删除字段的状态修改为“被删除状态”,之后在数据库中仍旧能看到此条数据记录
  • 使用场景:可以进行数据恢复

实现逻辑删除

step1 数据库中创建逻辑删除状态列,设置默认值为0

step2 实体类中添加逻辑删除属性

step3:测试

  /**
     * 通过多个id实现批量删除
     */
    @Test
    public void testDelete02()
    
        List<Long> list = Arrays.asList(1L, 2L, 3L);
        int result = userMapper.deleteBatchIds(list);
        System.out.println("result = "+result);

    

测试删除功能,真正执行的是修改

UPDATE t_user SET is_deleted=1 WHERE id=? AND is_deleted=0

测试查询功能,被逻辑删除的数据默认不会被查询

SELECT id,username AS name,age,email,is_deleted FROM t_user WHERE is_deleted=0

查询所有数据,也查不到删除的数据了

 /**
     * 查询所有数据
     */
    @Test
    public void testSelect02()
    

        List<User> users = userMapper.selectList(null);
        users.forEach(System.out::println);

    

mybatisplus常用注解

MyBatisPlus常用注解@TableName:自定义表名给User实体类添加注解aplication.yml中添加mp的配置#配置mp的日志mybatis-plus:configuration:log-impl:org.apache.ibatis.logging.stdout.StdOutImpl#设置MyBatis-Plus的全局配置global-config:db-config:table-prefix:t_@TableId默认id... 查看详情

mybatisplus之注解实现动态sql

参考技术A[TOC]附上yml中需要配置项特别说明:需要在url中添加rewriteBatchedStatements=true,否则批量插入不生效! 查看详情

mybatis-plus01_概述初始化工程basemapper和service中的crud常用注解

...yBatis-Plus初始化工程③.BaseMapper中的CRUD④.ServiceCRUD接口⑤.常用注解-@TableName⑥.常用注解-@TableId⑦.主键增长策略-雪花算法⑧.常用注解-@TableField⑨.常用注解-@TableLogic①.MyBatis-Plus的概述①.MyBatis-Plu 查看详情

mybatis-plus01_概述初始化工程basemapper和service中的crud常用注解

...yBatis-Plus初始化工程③.BaseMapper中的CRUD④.ServiceCRUD接口⑤.常用注解-@TableName⑥.常用注解-@TableId⑦.主键增长策略-雪花算法⑧.常用注解-@TableField⑨.常用注解-@TableLogic①.MyBatis-Plus的概述①.MyBatis-Plu 查看详情

mybatisplus乐观锁常用配置

版权声明本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl配置详情MyBatisPlus乐观锁常用配置如下:importcom.baomidou.mybatisplus.annotation.DbType;importcom.baomidou.mybatisplus.extension.plugins.Mybati 查看详情

mybatisplus分页插件常用配置

版权声明本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl配置详情MyBatisPlus分页插件常用配置如下:importcom.baomidou.mybatisplus.annotation.DbType;importcom.baomidou.mybatisplus.extension.plugins.Mybat 查看详情

mybatisplus总结(代码片段)

目录MyBatisPlusMP特点MP框架结构MP使用准备导入依赖springboot整合mybatisplus配置文件定义好实体类User后编辑mapper接口@Mapper与@MapperScan("包名")区别MP基本操作新增操作删除操作通过id删除用户通过map作为条件删除通过多个id... 查看详情

商城项目10_jsr303常用注解在项目中如何使用统一处理异常分组校验功能自定义校验注解(代码片段)

文章目录①.JSR303校验概述、注解②.项目中JSR303如何使用③.统一异常处理@ExceptionHandler④.处理错误状态码⑤.分组校验功能(多场景校验)⑥.自定义校验注解①.JSR303校验概述、注解①.JSR是JavaSpecificationRequests的缩写,意思是Java规... 查看详情

mybatisplus——标准数据层开发(代码片段)

...作设置分页拦截器作为Spring管理的bean@ConfigurationpublicclassMyBatisPlusConfig@BeanpublicMybatisPlusInterceptormpInterceptor()//1、定义Mp的拦截器MybatisPlusInterceptormpInterceptor=newMybatisPlusInterceptor();//2、添加具体的拦截器mpInterceptor.addInnerInterceptor(newPagi... 查看详情

mybatisplus(代码片段)

文章目录@TableName注解关于`autoResultMap`的说明@TableId注解@TableField注解什么是乐观锁乐观锁实例@Version注解@EnumValue注解@EnumValue注解示例代码@TableLogic注解@TableLogic属性@TableLogic属性样例@TableName注... 查看详情

mybatisplus代码生成器常用配置

版权声明本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl配置详情MyBatisPlus常用配置如下:@TestpublicvoidtestMybatisPlusGenerator()Stringurl="jdbc:mysql://localhost:3306/mp01?characterE 查看详情

mybatisplus学习笔记(代码片段)

文章目录MyBatisPlus学习笔记简介特性框架结构快速使用引入mybatis-plus相关maven依赖引入mybatis-plus在springboot中的场景启动器项目中其他需要导入依赖创建表SQL语句项目结构一览项目配置配置MapperScan注解application.properties配置创建Entit... 查看详情

mybatisplus新版本springboot集成mybatisplus主键生成策略(代码片段)

...解@TableId(type=IdType.x)源码TableId.classpackagecom.baomidou.mybatisplus.annotation;importjava.lang.annotation.Documented;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;@Document... 查看详情

mybatisplus新版本springboot集成mybatisplus主键生成策略(代码片段)

...解@TableId(type=IdType.x)源码TableId.classpackagecom.baomidou.mybatisplus.annotation;importjava.lang.annotation.Documented;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;@Document... 查看详情

常用jackson注解解释

@JsonNaming(SnakeCaseStrategy.class)指定Json字段名映射策略为蛇形大小写策略。缺省则直接使用Bean属性名可用的命名映射策略还有:KebabCaseStrategy:肉串策略-单词小写,使用连字符'-'连接SnakeCaseStrategy:蛇形策略-单词小写&... 查看详情

黑马程序员ssm框架教程_spring+springmvc+mybatisplus笔记(自学用,持续更新)(代码片段)

Spring的实现有两种方式,一是配置,二是注解目录Spring_day01IOC、DIBean的基本配置、实例化、生命周期Bean的基本配置bean的实例化训练中的不足1:bean的生命周期DI相关内容setter注入构造器注入小结自动注入集合注入Spring... 查看详情

技术分享_mybatisplus分页插件

MyBatisplus分页插件分页插件一,后台分页配置MyBatisPlus自带分页插件(即BaseMapper接口中的selectPage()方法),只要简单的配置即可实现分页功能,具体步骤如下:1.1配置分页插件新创一个配置类,在配置类里面配置分页插件@Configura... 查看详情

mybatisplus注入全局操作踩坑

起源最近在学习mybatisplus(下文简称mp)的进阶操作,有一个自定义全局操作。简单来说就是你在mapper中定义一个方法,常规的方法就是在xml文件中写具体sql或者方法上面打注解,注解里面写具体sql实现。初次之外,mp还支持一种... 查看详情