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);
推荐使用方法二!