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

    科技2025-08-17  33

    文章目录

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

    推荐使用方法二!

    Processed: 0.016, SQL: 8