• MyBatisPlus学习(4)—— 设置实体类


    在MyBatisPlus中没有设置表名,但是可以操作对应的表,原因是通过添加实体类对象的泛型来操作了该实体类对应的表。

    一. @TableName

    如果实体类的类名与对应表名不相同,则将无法通过实体类对象来操作对应的表,因此需要使用@TableName注解来指定该实体类对应哪一个表。

    例如:表名为:tbl_user,实体类为:User

    1. package com.xdu.mybatisplus.pojo;
    2. import com.baomidou.mybatisplus.annotation.TableName;
    3. import lombok.*;
    4. @Data
    5. @TableName("tbl_user") //设置实体类对应的表名
    6. public class User {
    7. private Integer id;
    8. private String name;
    9. private Integer age;
    10. }

    如果数据库中所有表的前缀都是tbl_,则可以在application.properties中设置全局前缀,则不需要为每个实体类添加@TableName注解

    mybatis-plus.global-config.db-config.table-prefix=tbl_

    二. @TableId

    如果实体类中的id和表中的主键名不同,则需要使用@TableId注解将实体类中的属性设置成主键;

    value属性用于指定主键的字段;type属性设置主键的生成策率,默认是随机生成id值,IdType.AUTO表示主键自增(前提是表中该字段也设置了自增)

    例如:表中的主键是uid,实体类中的属性是id 

    1. package com.xdu.mybatisplus.pojo;
    2. import com.baomidou.mybatisplus.annotation.IdType;
    3. import com.baomidou.mybatisplus.annotation.TableId;
    4. import lombok.*;
    5. @Data
    6. public class User {
    7. @TableId(value = "uid", type = IdType.AUTO) //type = IdType.AUTO表示id自动递增
    8. private Integer id;
    9. private String name;
    10. private Integer age;
    11. }

    可以在application.properties中设置全局的主键自增

    mybatis-plus.global-config.db-config.id-type=auto

    三. @TableField

    如果实体类的属性名和表中的字段名不一样,需要使用@TableField注解指明该属性名对应的字段名。

    例如:表中的字段名是:user_name;实体类中的属性名是:name

    注意:如果表中的字段名是:user_name,实体类中的属性名是:userName,则不需要使用该注解也能将字段名与属性名对应起来,这是mybatis-plus提供的功能,下划线可以对应驼峰。

    1. package com.xdu.mybatisplus.pojo;
    2. import com.baomidou.mybatisplus.annotation.TableField;
    3. import lombok.*;
    4. @Data
    5. public class User {
    6. private Integer id;
    7. @TableField("user_name")
    8. private String name;
    9. private Integer age;
    10. }

    可以在application.properties中设置

    1. #在映射实体或属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
    2. mybatis-plus.configuration.map-underscore-to-camel-case: true
  • 相关阅读:
    Element UI打开表单自动验证问题的解决
    第05、WireShark抓包-协议分析
    docker搭建私有仓库并推送本地镜像
    java计算机毕业设计火车订票系统MyBatis+系统+LW文档+源码+调试部署
    libevent学习——Reactor模式
    【temu】美国版数据采集API
    204、RabbitMQ 之 使用 topic 类型的 Exchange 实现通配符路由
    【Proteus仿真】51单片机电子锁综合设计案例
    【PyQt】调整子控件的层级以调整绘制的先后顺序
    模块、服务、接口命名示例
  • 原文地址:https://blog.csdn.net/Archer__13/article/details/126936271