mybatis-plus的实体类里的字段,怎么映射的数据库具体字段的 #创作灵感#
在 MyBatis-Plus 中,实体类(Entity)的字段与数据库表的具体字段之间的映射主要通过以下几种方式实现:
-
字段名匹配:
MyBatis-Plus 默认采用字段名匹配的策略进行映射。即,如果实体类中的字段名与数据库表中的列名完全一致(不区分大小写,但在实际开发中建议保持一致以避免潜在问题),那么 MyBatis-Plus 会自动将查询结果集中的列值映射到实体类的对应字段上。
-
@TableField 注解:
当实体类中的字段名与数据库表中的列名不一致时,可以使用 @TableField 注解来指定映射关系。@TableField 注解中的 value 属性用于指定数据库表中的列名。
public class User { private Long id; // 假设数据库中的列名为 user_name 而不是 userName @TableField("user_name") private String userName; // 其他字段... }
3.@TableId 注解:
对于主键字段,可以使用 @TableId 注解来指定。这个注解不仅用于标识主键字段,还可以配置主键的生成策略(如自增、UUID等)。虽然它主要用于主键字段,但它也间接参与了字段与列之间的映射,因为 @TableId 注解中的 value 属性(如果提供了)也可以用来指定数据库中的列名。但通常情况下,主键字段的列名与实体类中的字段名会保持一致,因此这个属性可能不是必需的。
4.全局配置:
MyBatis-Plus 允许通过全局配置来调整字段名与列名之间的映射规则,比如开启驼峰命名自动映射(map-underscore-to-camel-case)。当这个配置开启时,MyBatis-Plus 会自动将数据库中的下划线命名(如 user_name)转换为 Java 中的驼峰命名(如 userName),而无需在每个字段上都使用 @TableField 注解
application.yaml
mybatis-plus: global-config: db-config: # 开启驼峰命名自动映射 id-type: auto table-prefix: t_ # 其他配置... map-underscore-to-camel-case: true