当前位置: 代码迷 >> 综合 >> Mybatis之@ResultMap,@Results,@Result注解
  详细解决方案

Mybatis之@ResultMap,@Results,@Result注解

热度:48   发布时间:2024-02-26 12:34:35.0

文章目录

  • 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);

推荐使用方法二!

  相关解决方案