文章目录
- Mybatis注解之@Results、@Result、@ResultMap
-
- 问题
- 方法一
- 方法二
Mybatis注解之@Results、@Result、@ResultMap
问题
在使用mybatis时发现,mybatis能自动匹配实体名和数据库字段名相同的字段。当有实体名与数据库的字段名不同时该如何解决??
数据库的表对应的列名:
springboot项目中建的实体类为:
public class MapModel {
private Long key;private String value;//省略getter、setter方法}
方法一
给查询字段另起名对应实体类的名称:
@Select("SELECT province_id as key , province_name as value FROM `j_position`")
public List<MapModel> provinceName();
方法二
使用@Results、@Result、@ResultMap注解:
@Select("SELECT province_id, province_name FROM `j_position`")@Results(id="resultMap1" ,value = {
@Result(property = "key",column = "province_id"),@Result(property = "value",column ="province_name")})
public List<MapModel> provinceName();
其中定义的id="resultMap1"可以使用
@ResultMap("resultMap1)
@Select("SELECT province_id, province_name FROM `j_position` where province_name=#{name}")
public List<MapModel> provinceName(String name);
推荐使用方法二!