当我们使用 MyBatis-Plus 进行开发时,如果数据库中的表和列采用了下划线命名法,则需要搭配驼峰式命名法进行开发,这个过程中就需要解决 MyBatis-Plus 驼峰式命名规则问题。
以下是解决 MyBatis-Plus 驼峰式命名规则问题的完整攻略:
1. 配置文件中开启驼峰命名法
在 MyBatis-Plus 中,我们可以通过在配置文件中开启驼峰命名法来解决驼峰式命名规则问题。
# 配置文件
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
map-underscore-to-camel-case 参数为 true 时,会开启数据库下划线方式和 Java 驼峰方式之间的转换。
2. 在实体中使用 @TableField 注解
如果不想在全局配置文件中开启驼峰命名法,也可以通过在实体类中使用 @TableField 注解来解决这个问题。我们可以在 @TableField 注解中使用 value 属性来指定数据库字段名称,而不是使用默认的驼峰式命名规则。
@Data
public class User {
@TableId(type = IdType.AUTO)
private Long id;
@TableField(value = "user_name")
private String userName;
@TableField(value = "password")
private String password;
private Integer age;
private String email;
}
通过在 @TableField 注解中指定 value 属性,我们可以将数据库字段名称和实体类属性名称进行映射,从而解决 MyBatis-Plus 驼峰式命名规则问题。
示例
以下是两个示例,演示如何使用 MyBatis-Plus 解决驼峰式命名规则问题:
示例 1
数据库表的名称为 user_info
,列名为 user_name
、create_time
,在 MyBatis-Plus 的配置文件中开启驼峰命名法:
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
configuration:
map-underscore-to-camel-case: true
定义实体类 User:
@Data
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String userName;
private LocalDateTime createTime;
}
UserMapper 接口:
public interface UserMapper extends BaseMapper<User> {
}
执行查询:
@Test
void testSelect() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_name", "Tom");
List<User> userList = userMapper.selectList(queryWrapper);
for (User user : userList) {
System.out.println(user);
}
}
在执行查询时,我们可以看到,MyBatis-Plus 自动将数据库表和列名转换为了驼峰式命名规则,实现了自动映射。
示例 2
数据库表的名称为 user_info
,列名为 user_name
、create_time
,在实体类中使用 @TableField 注解指定数据库字段名称:
@Data
public class User {
@TableId(type = IdType.AUTO)
private Long id;
@TableField(value = "user_name")
private String userName;
@TableField(value = "create_time")
private LocalDateTime createTime;
}
执行查询:
@Test
void testSelect() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_name", "Tom");
List<User> userList = userMapper.selectList(queryWrapper);
for (User user : userList) {
System.out.println(user);
}
}
通过在实体类中使用 @TableField 注解,我们可以指定数据库字段名称,从而解决驼峰式命名规则问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决mybatis plus 驼峰式命名规则问题 - Python技术站