在MyBatisPlus中没有设置表名,但是可以操作对应的表,原因是通过添加实体类对象的泛型来操作了该实体类对应的表。
如果实体类的类名与对应表名不相同,则将无法通过实体类对象来操作对应的表,因此需要使用@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_
如果实体类中的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注解指明该属性名对应的字段名。
例如:表中的字段名是: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