解析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
Java数据结构之链表相关知识总结
Jun 18 Java/Android
详解Java实践之适配器模式
Jun 18 Java/Android
Java实现多线程聊天室
Jun 26 Java/Android
Java基于字符界面的简易收银台
Jun 26 Java/Android
Java 使用类型为Object的变量指向任意类型的对象
Apr 13 Java/Android
Android studio 简单计算器的编写
May 20 Java/Android
Spring JPA 增加字段执行异常问题及解决
Jun 10 Java/Android
springboot为异步任务规划自定义线程池的实现
Jun 14 Java/Android
Java Spring Boot请求方式与请求映射过程分析
Jun 25 Java/Android
Java+swing实现抖音上的表白程序详解
Jun 25 Java/Android
Java代码规范与质量检测插件SonarLint的使用
Aug 05 Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
You might like
解析php二分法查找数组是否包含某一元素
2013/05/23 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
es6中比较有用的7个技巧小结
2019/07/12 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
详解Python装饰器由浅入深
2016/12/09 Python
Python递归函数定义与用法示例
2017/06/02 Python
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
python 如何引入协程和原理分析
2020/11/30 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
中学家长会邀请函
2014/01/17 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
解除合同协议书
2014/04/17 职场文书
党日活动总结
2014/05/07 职场文书
学校师德师风整改方案
2014/10/28 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
2016新年致辞
2015/08/01 职场文书
婚礼答谢词范文
2015/09/29 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
python 如何做一个识别率百分百的OCR
2021/05/29 Python
全网非常详细的pytest配置文件
2022/07/15 Python