[Mybatis-Plus笔记] MybatisPlus-04-映射匹配兼容性

本文介绍了如何使用Mybatis-Plus在Java实体类中指定表名,通过@TableName注解和table-prefix配置。还讲解了如何指定字段名和处理不存在于表中的字段,包括@TableField注解及exist属性的使用。
摘要由CSDN通过智能技术生成

一、指定表名

1. 注解@TableName

在实体类上注解 @TableName(“表名”) 来指定对应哪一个表

未指定时,默认将 BaseMapper 泛型中的类名作为表名

@Data
@TableName("tbl_user")
public class User {
    private Long id;
    private String name;
    private String password;
    private String email;
}

2. 配置 table-prefix

有些表名相比实体类名只是多了一个前缀而已,比如 User 类对应表名是 tbl_user

可以配置 table-prefix 属性指定前缀,Mybatis-Plus 会在类名前加上前缀,然后再去找对应的表

配置 yml 文件:

mybatis-plus:
  global-config:
    db-config:
      table-prefix: "tbl_"

当实体类注解了 @TableName,table-prefix 便不对其生效

二、指定字段名

在实体类的成员变量上注解 @TableField(“字段名”) 来指定对应的字段

例如类中的 password 对应的是表中的 pwd 字段:

@Data
@TableName("tbl_user")
public class User {
    private Long id;
    private String name;
    @TableField("pwd")
    private String password;
    private String email;
}

三、注解不存在字段

实体类中的成员变量不存在于表中,注解 @TableField(exist = false) 在成员变量上

例如表示在线的成员变量,不存在于表中:

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("tbl_user")
public class User {
    private Long id;
    private String name;
    @TableField("pwd")
    private String password;
    private String email;
    @TableField(exist = false)
    private Boolean online;
}
mybatis-flex是一个用于整合MyBatisMyBatisPlus的工具,它提供了一种简单的方式来使用MyBatis-Plus的功能,同时保留了MyBatis的灵活性。 首先,让我们了解一下MyBatisMyBatis-Plus的概念。MyBatis是一个持久层框架,它提供了一种将SQL语句与Java代码进行映射的方式,使得开发者可以通过编写简单的XML配置文件或者注解来实现数据库操作。而MyBatis-Plus是在MyBatis的基础上进行扩展的一个框架,它提供了更多的便利功能,如通用CRUD操作、分页查询、条件构造器等。 接下来是介绍mybatis-flex的整合方式。mybatis-flex通过提供一个基于注解的方式来整合MyBatisMyBatis-Plus。你只需要在Mapper接口上添加@Mapper注解,并继承BaseMapper接口,就可以直接使用MyBatis-Plus提供的通用CRUD方法。同时,你还可以使用@SelectProvider注解来编写动态SQL查询语句。 下面是一个示例代码,展示了如何使用mybatis-flex整合MyBatisMyBatis-Plus: ```java @Mapper public interface UserMapper extends BaseMapper<User> { @SelectProvider(type = UserSqlProvider.class, method = "getUserByName") User getUserByName(String name); } @Mapper public interface UserSqlProvider { default String getUserByName(String name) { return new SQL() .SELECT("*") .FROM("user") .WHERE("name = #{name}") .toString(); } } ``` 在上面的示例中,UserMapper继承了BaseMapper接口,并添加了@Mapper注解。UserSqlProvider类使用@SelectProvider注解来提供动态SQL查询语句。 通过使用mybatis-flex,你可以享受到MyBatis-Plus提供的便利功能,同时保留了MyBatis的灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值