5、Mybatis-Plus 常用注解

简介: 这篇文章详细介绍了Mybatis-Plus中常用的注解,包括解决实体类与数据库表名不一致、字段不匹配的问题,主键生成策略的配置,以及逻辑删除的实现方法。

第一篇:1、Mybatis-Plus 创建SpringBoot项目
第二篇:2、Mybatis-Plus 测试增、删、改、查
第三篇:3、Mybatis-Plus 自定义sql语句
第四篇:4、Mybatis-Plus 通用service的操作

文章目录

  • 1、表名(如果实体类和数据库中的表名不一致,会出现以下问题)
  • 2、注解解决数据库字段和实体类字段问题,主键生成策略
    • 2.1、直接在实体类上进行注解
    • 2.2、全局配置,在yml文件中
    • 2.3、数据库的主键和实体类的主键保持一致。但是不是id的情况下、不进行注解配置。会出现的问题?
    • 2.4、数据库的主键和实体类的主键不一致
    • 2.5、如果自己设定了id的值 不会使用自增策略的值
  • 3、当数据库中表的字段和实体类的字段不一一对应时
    • 3.1 数据库字段
    • 3.2 实体类字段
    • 3.3 出现的错误
    • 3.4、使用@TableField("username") 指定对应的字段名
    • 3.5 测试结果
  • 4、逻辑删除
    • 4.1、在数据库表中新添加一个字段表示删除状态
    • 4.2、在实体类属性中添加,同时注解@TableLogic
    • 4.3 、测试结果

1、表名(如果实体类和数据库中的表名不一致,会出现以下问题)

在这里插入图片描述
解决方法:在实体类中添加注解

@Data
//设置实体类所对应的表名:数据库中对应实体类的表名
@TableName("t_user")
public class User {

    private Long id;

    private String name;

    private Integer age;

    private String email;

}

再次执行代码

在这里插入图片描述
mybatis-plus根据哪里操作数据库中的表?
在这里插入图片描述


2、注解解决数据库字段和实体类字段问题,主键生成策略

2.1、直接在实体类上进行注解

package com.zyz.mybatisplus.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
//设置实体类所对应的表名:数据库中对应实体类的表名
//@TableName("t_user")
public class User {

    //如果设置了主键的id,则不会使用自增id

    /**
     * 1、mybatis-plus会默认id为主键。如果数据库中的表主键和实体类的主键不是id(默认两个字段一致)。
     * 需要在实体类字段上添加@TableId属性。
     *
     *  2、如果实体类字段的主键和数据库中表的主键不一致。@TableId注解的value属性用于指定主键的字段
     */
    //将属性对应的字段指定为主键

//    @TableId
//    private Long id;

            //如果只有一个属性,value可以省略 @TableId("uid")
//    @TableId(value = "uid")
//    private Long id;

    /**
     * type指定主键生成的策略。默认采用雪花算法
     * 采用数据库的自增策略:注意:数据库中的该字段设置了id自增,否则无效
     */

    @TableId(value = "uid",type = IdType.AUTO)
    private Long id;

    private String name;

    private Integer age;

    private String email;

}

2.2、全局配置,在yml文件中

#设置mybatis-plus的全局配置:
  global-config:
    db-config:
      #设置实体类对应数据库中表的统一前缀
      table-prefix: t_
      #配置mybatis-plus的主键策略
      id-type: auto

2.3、数据库的主键和实体类的主键保持一致。但是不是id的情况下、不进行注解配置。会出现的问题?

在这里插入图片描述

2.4、数据库的主键和实体类的主键不一致

在这里插入图片描述

2.5、如果自己设定了id的值 不会使用自增策略的值

3、当数据库中表的字段和实体类的字段不一一对应时

3.1 数据库字段

在这里插入图片描述

3.2 实体类字段

在这里插入图片描述

3.3 出现的错误

在这里插入图片描述

3.4、使用@TableField(“username”) 指定对应的字段名

在这里插入图片描述

3.5 测试结果

在这里插入图片描述

4、逻辑删除

4.1、在数据库表中新添加一个字段表示删除状态

4.2、在实体类属性中添加,同时注解@TableLogic

在这里插入图片描述

4.3 、测试结果

相关文章
|
12月前
|
SQL XML Java
Mybatis基础使用知识(注解)
mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。 最后 mybatis 框架执行sql 并将结果映射为java对象并返回。采用ORM(对象关系映射)思想解决了实体和数据库映射问题,对jdbc进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作。
648 0
|
SQL XML Java
MyBatis注解的运用于条件搜索实践
通过上述的实践,我们可以看出MyBatis注解不仅能够实现条件搜索的需求,还能够提供灵活而强大的SQL构造能力,极大地简化了代码的复杂度,提高了开发效率。在实际的项目开发中,结合实际的业务需求合理选择MyBatis的配置方式(注解或XML),能够让数据持久层代码变得更加清晰和易维护。
272 11
|
存储 Java 数据库连接
Mybatisplus中的主要使用注解
3.有些注解需要配合其他配置使用。例如,@Version需要配合乐观锁插件使用,@EnumValue需要配合对应的TypeHandler使用。
685 11
|
SQL XML Java
MyBatis——选择混合模式还是全注解模式?
在MyBatis开发中,Mapper接口的实现方式有两种:全注解模式和混合模式。全注解模式直接将SQL嵌入代码,适合小规模、简单逻辑项目,优点是直观简洁,但复杂查询时代码臃肿、扩展性差。混合模式采用接口+XML配置分离的方式,适合大规模、复杂查询场景,具备更高灵活性与可维护性,但学习成本较高且调试不便。根据项目需求与团队协作情况选择合适模式至关重要。
394 4
|
SQL Java 数据库连接
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。本文讲解了最新版MP的使用教程,包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段等核心功能。
2833 6
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
1241 0
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
文章介绍了MyBatis的简单增删改查操作,包括创建数据表、实体类、配置文件、Mapper接口及其XML文件,并解释了`#{}`预编译参数和`@Param`注解的使用。同时,还涵盖了resultType与resultMap的区别,并提供了完整的代码实例和测试用例。
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
|
SQL 缓存 Java
MyBatis如何关闭一级缓存(分注解和xml两种方式)
MyBatis如何关闭一级缓存(分注解和xml两种方式)
937 5
|
Java 数据库连接 mybatis
Mybatis使用注解方式实现批量更新、批量新增
Mybatis使用注解方式实现批量更新、批量新增
863 3
|
SQL 存储 数据库
深入理解@TableField注解的使用-MybatisPlus教程
`@TableField`注解在MyBatis-Plus中是一个非常灵活和强大的工具,能够帮助开发者精细控制实体类与数据库表字段之间的映射关系。通过合理使用 `@TableField`注解,可以实现字段名称映射、自动填充、条件查询以及自定义类型处理等高级功能。这些功能在实际开发中,可以显著提高代码的可读性和维护性。如果需要进一步优化和管理你的MyBatis-Plus应用程
1656 3