一. 前期准备
⏹数据库中的数据,其中parent_valid
和parent_id
有下划线
⏹新建一个实体类映射数据库字段
import lombok.Data;
@Data
public class Category {
private String id;
private String parentValid;
private String parentId;
private String name;
private String updateTime;
}
⏹SQL查询,未使用AS对字段进行重命名
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.jmw.mapper.TestMapper1">
<select id="listUserInfo" resultType="com.example.jmw.entity.Category">
SELECT
id,
parent_valid,
parent_id,
`name`,
update_time
FROM
tb_web_category;
</select>
</mapper>
二. 默认情况下未开启驼峰命名映射
@Service
public class Test5Service {
@Autowired
private TestMapper1 mapper;
public void insertUserInfo() {
// 查询
List<Category> personList = mapper.listUserInfo();
System.out.println(personList);
}
}
⭕数据库字段和实体类属性不匹配,因此红框部分为null
三. 开启驼峰命名映射
配置文件的方式
# Mybatis开启驼峰映射
mybatis:
configuration:
mapUnderscoreToCamelCase: true
或者配置类的方式
import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ConfigInfo {
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return new ConfigurationCustomizer() {
@Override
public void customize(org.apache.ibatis.session.Configuration configuration) {
configuration.setMapUnderscoreToCamelCase(true);
}
};
}
}
⭕数据库字段和实体类属性虽然不匹配,但是开启了驼峰映射,所以红框部分也能映射到数据