一、给字段起别名,保持和属性名一样
<! --List<Emp> getAllEmp( ); -->
<select id="getAllEmp" resultType="Emp">
select eid , emp_name empName , age , sex, email from t_emp
</ select>
如上面的SQL语句将emp_name取别名为empName对应实体类的属性名。
二、设置全局配置,将_自动映射为驼峰(开启驼峰匹配)
开启驼峰匹配后,会将_自动映射为驼峰,如emp_name将会被映射为empName.
在Spring Boot中,使用MyBatis时,可以通过在application.yml
文件中设置以下参数来开启驼峰匹配:
mybatis:
configuration:
map-underscore-to-camel-case: true
这样设置之后,MyBatis就会将数据库中的下划线分隔的字段名转换为Java中的驼峰式命名。例如,如果数据库中的字段名为user_name
,则在Java中将会被映射为userName
。
三、通过resultMap解决字段名和属性名的映射关系
resultMap:设置自定义映射
- 属性:
- id:表示自定义映射的唯一标识,不能重复
- type:查询的数据要映射的实体类的类型
- 子标签:
- id:设置主键的映射关系
- result:设置普通字段的映射关系
- 子标签属性:
- property:设置映射关系中实体类中的属性名
- column:设置映射关系中数据库 表中的字段名
- association:javaBean封装一个实体(多对一);
- collection:用于javaBean封装一个集合(一对多)。
- 若字段名和实体类中的属性名不一致,则可以通过resultMap设置自定义映射,即使字段名和属性名一致的属性也要映射,也就是全部属性都要列出来
<resultMap id="empResultMap" type="Emp">
<id property="eid" column="eid"></id>
<result property="empName" column="emp_name"></result>
<result property="age" column="age"></result>
<result property="sex" column="sex"></result>
<result property="email" column="email"></result>
</resultMap>
<!--List<Emp> getAllEmp();-->
<select id="getAllEmp" resultMap="empResultMap">
select * from t_emp
</select>