千家信息网

Mybatis的@ResultMap,@Results,@Result注解怎么使用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"Mybatis的@ResultMap,@Results,@Result注解怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Myba
千家信息网最后更新 2026年11月03日Mybatis的@ResultMap,@Results,@Result注解怎么使用

本篇内容主要讲解"Mybatis的@ResultMap,@Results,@Result注解怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Mybatis的@ResultMap,@Results,@Result注解怎么使用"吧!

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

其中定义的id="resultMap1"可以使用

@ResultMap("resultMap1)@Select("SELECT province_id, province_name FROM `j_position` where province_name=#{name}")public List provinceName(String name);

推荐使用方法二!

mybatis注释使用

resultMap对应的注释,及对应注解Results、Result、One、Many的使用

有一部分建立在我上一个博客,mybatis注释使用(单表查询),如果那里看不懂了,建议看下我上一个博客(里面所有的配置文件,接口,数据库的创建都有说明)

对应的注解:

1.@Results注解

代替的是标签

该注解中可以使用单个@Result注解,也可以使用@Result集合

@Results({@Result(),@Result()})或@Results(@Result())

注意:使用注解是若报出org.apache.ibatis.binding.BindingException:Invalid bound statement (not found):接口全类名.方法名

可能是使用@Results注解时忘记使用@Select注解

2.@Resutl注解

代替了 标签和标签

@Result 中 属性介绍:

  • column 数据库的列名

  • Property需要装配的属性名

  • one 需要使用的@One注解(@Result(one=@One)()))

  • many 需要使用的@Many注解(@Result(many=@many)()))

3.@One注解(一对一)

代替了标签,是多表查询的关键,在注解中用来指定子查询返回单一对象。

@One注解属性介绍:

  • select 指定用来多表查询的sqlmapper

  • fetchType会覆盖全局的配置参数lazyLoadingEnabled。。

使用格式:

@Result(column=" ",property="",one=@One(select=""))

4.@Many注解(多对一)

代替了标签,是是多表查询的关键,在注解中用来指定子查询返回对象集合。

注意:聚集元素用来处理"一对多"的关系。需要指定映射的Java实体类的属性,属性的javaType(一般为ArrayList)但是注解中可以不定义;

使用格式:

@Result(property="",column="",many=@Many(select=""))

到此,相信大家对"Mybatis的@ResultMap,@Results,@Result注解怎么使用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

注解 查询 方法 实体 属性 数据 数据库 标签 字段 注释 中用 关键 内容 博客 定子 对象 接口 格式 学习 配置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南云网互联网络科技有限公司 江苏根荣互联网科技 没上市的科技互联网公司 互联网金融与金融科技 高科技与互联网 狮子座互联网科技有限公司 上海万想互联网科技 新华互联网科技校企合作 银川新华互联网科技职业技术培训学校图片 阿里互联网科技公司 重庆威客帮互联网科技 宁夏众和广鑫互联网科技有限公司 互联网对科技的发展 浙江互联网科技研学营 昭通互联网科技选哪家 辽宁互联网新科技 乌鲁木齐新华智原互联网科技学校 卡尔迅互联网科技有限公司 广州有谷有贝互联网科技有限公司 神州科技互联网有限公司 南京欣网互联网络科技有限公司 河南真二互联网科技有限公司 互联网科技公司怎么样 壕鑫互联网络科技 科技与互联网的利与弊 亳州好赞互联网科技有限公司 山东星卡互联网科技有限公司官网 富国互联网科技002692 恒生互联网科技趋势 武汉亿视互联网科技有限公司
0