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

本文介绍 MyBatisPlus 中实体类的三种关键注解:@TableName、@TableId 和 @TableField 的用法。这些注解帮助解决实体类与数据库表结构不一致的问题,并提供全局配置方案。

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

一. @TableName

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

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

package com.xdu.mybatisplus.pojo;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

@Data
@TableName("tbl_user")        //设置实体类对应的表名
public class User {
    private Integer id;

    private String name;

    private Integer age;
}

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

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

二. @TableId

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

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

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

package com.xdu.mybatisplus.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.*;

@Data
public class User {
    @TableId(value = "uid", type = IdType.AUTO)  //type = IdType.AUTO表示id自动递增
    private Integer id;

    private String name;

    private Integer age;
}

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

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

三. @TableField

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

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

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

package com.xdu.mybatisplus.pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.*;

@Data
public class User {
    private Integer id;

    @TableField("user_name")
    private String name;

    private Integer age;
}

可以在application.properties中设置

#在映射实体或属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
mybatis-plus.configuration.map-underscore-to-camel-case: true  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值