解析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实现分布式事务的三种方案
Jun 11 Java/Android
springboot中一些比较常用的注解总结
Jun 11 Java/Android
Java 泛型详解(超详细的java泛型方法解析)
Jul 02 Java/Android
新手初学Java网络编程
Jul 07 Java/Android
java解析XML详解
Jul 09 Java/Android
利用Sharding-Jdbc进行分库分表的操作代码
Jan 22 Java/Android
Java设计模式之享元模式示例详解
Mar 03 Java/Android
Java 通过手写分布式雪花SnowFlake生成ID方法详解
Apr 07 Java/Android
Java的Object类的九种方法
Apr 13 Java/Android
详解Flutter自定义应用程序内键盘的实现方法
Jun 14 Java/Android
java实现web实时消息推送的七种方案
Jul 23 Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
You might like
用PHP实现小型站点广告管理
2006/10/09 PHP
php 防止单引号,双引号在接受页面转义
2008/07/10 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
js parseInt(&quot;08&quot;)未指定进位制问题
2010/06/19 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
URL地址中的#符号使用说明
2011/02/12 Javascript
js无刷新操作table的行和列
2014/03/27 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
js中this对象用法分析
2018/01/05 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
Python translator使用实例
2008/09/06 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
python利用Excel读取和存储测试数据完成接口自动化教程
2020/04/30 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
.net工程师笔试题
2012/06/09 面试题
园林设计专业毕业生求职信
2014/03/23 职场文书
小学评语大全
2014/04/22 职场文书
城管综合整治方案
2014/05/01 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
先进典型事迹材料
2014/12/29 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
ant design charts 获取后端接口数据展示
2022/05/25 Javascript