解析mybatis-plus中的resultMap简单使用


Posted in Java/Android onNovember 23, 2021

不一致,那么用来接收查询出来的result对应的数据将会是Null,如果不使用resultMap,那么一般为了避免pojo对象对应的属性为Null,会采用SQL语句中的别名,将查询出的数据库中的字段as pojo对象属性,而且,resultMap支持延迟加载

解析mybatis-plus中的resultMap简单使用

但是为了避免sql语句看着 臃肿,所以就使用了resultMap

  简单使用

 1.    选定你要进行的resultMap映射的model,如下是我要进行映射的model,model=======>Category.java【进行resultMap的pojo类】

package com.atguigu.gulimall.product.vo;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Category {
    private Long catId;
    private String name;
    private Long parentCid;
    private Integer catLevel;
    private Integer status;
    private Integer sort;
    private String iconImage;
    private String userName;
    private String unit;
    private Integer count;
    private Integer isDelete;
}

             注意

                   不要在你要映射成resultMap的pojo类上加lombok的@Accessors(chain=true)的链式编程的注解,因为resultMap中的属性会报红【但是仍可使用】,如下图这样

                  解析mybatis-plus中的resultMap简单使用

2.       在mapper.xml中编写resultMap,并在要使用的sql查询语句里,指定result标签为resultMap和其名称

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
<mapper namespace="com.atguigu.gulimall.product.dao.CategoryDao">
	<!-- 可根据自己的需求,是否要使用 -->
    <resultMap type="com.atguigu.gulimall.product.vo.Category" id="categoryMap">
        <result property="catId" column="cat_id"/>
        <result property="name" column="name"/>
        <result property="parentCid" column="parent_cid"/>
        <result property="catLevel" column="cat_level"/>
        <result property="status" column="show_status"/>
        <result property="sort" column="sort"/>
        <result property="iconImage" column="icon"/>
        <result property="count" column="product_count"/>
    </resultMap>
     <!--直接在sql查询返回的结果里指定resultMap-->
    <select id="queryByCid" parameterType="int" resultMap="categoryMap">
        select * from pms_category where cat_id = #{cId}
    </select>
</mapper>

         resultMap中各标签代表含义

type: resultMap最终映射的java对象,可以使用别名【如果使用resultMap实际返回的对象类型】
id:   resultMap的唯一标识【随便起】
result: 对普通名映射定义
property: type指定的返回的pojo对象中的属性名  写category里的属性名
column: 数据库中要查询出的字段【列名】           写要映射的数据库表里的字段名
property对应column形成数据库中字段和pojo属性对应关系

          注意

              如果此时resultMap在另外一个nameSpace里边,即其他的mapper文件里,那么在跨mapper使用时resultMap注明命名空间

3.  测试,直接运行项目

            如果在数据库里查询的字段个数少于或多于resultMap,那么依然能够映射成功,就映射对应的字段,因为名称映射不上或者pojo里没有的字段对应的属性,那么直接在返回的pojo 对象里返回null和没有该字段

                                      解析mybatis-plus中的resultMap简单使用

 

到此这篇关于mybaits-plus的resultMap简单使用的文章就介绍到这了,更多相关mybaits-plus resultMap使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
java中重写父类方法加不加@Override详解
Jun 21 Java/Android
详解Java线程池是如何重复利用空闲线程的
Jun 26 Java/Android
Java生成读取条形码和二维码的简单示例
Jul 09 Java/Android
Android基于Fresco实现圆角和圆形图片
Apr 01 Java/Android
Flutter集成高德地图并添加自定义Maker的实践
Apr 07 Java/Android
Java中的继承、多态以及封装
Apr 11 Java/Android
Spring Boot配合PageHelper优化大表查询数据分页
Apr 20 Java/Android
Android Studio实现简易进制转换计算器
May 20 Java/Android
Java处理延时任务的常用几种解决方案
Jun 01 Java/Android
Android Canvas绘制文字横纵向对齐
Jun 05 Java/Android
ConditionalOnProperty配置swagger不生效问题及解决
Jun 14 Java/Android
详解Spring Security如何在权限中使用通配符
Jun 28 Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
You might like
php带抄送和密件抄送的邮件发送方法
2015/03/20 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
python 实现A*算法的示例代码
2018/08/13 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
python中threading开启关闭线程操作
2020/05/02 Python
基于python 取余问题(%)详解
2020/06/03 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
中国网上药店领导者:1药网
2017/02/16 全球购物
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
实习单位评语
2014/04/26 职场文书
抵押贷款承诺书
2014/05/30 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
社区四风存在问题及整改措施
2014/10/26 职场文书
计划生育诚信协议书
2014/11/02 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
2015年幼儿园中班开学寄语
2015/05/27 职场文书
干部理论学习心得体会
2016/01/21 职场文书
导游词之平津战役纪念馆
2019/11/04 职场文书
MySQL复制问题的三个参数分析
2021/04/07 MySQL