解析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 22 Java/Android
Spring Boot 实现敏感词及特殊字符过滤处理
Jun 29 Java/Android
gateway网关接口请求的校验方式
Jul 15 Java/Android
看完这篇文章获得一些java if优化技巧
Jul 15 Java/Android
SpringBoot快速入门详解
Jul 21 Java/Android
mybatis中注解与xml配置的对应关系和对比分析
Aug 04 Java/Android
Android Rxjava3 使用场景详解
Apr 07 Java/Android
Java 超详细讲解十大排序算法面试无忧
Apr 08 Java/Android
Java 写一个简单的图书管理系统
Apr 26 Java/Android
Java Spring Lifecycle的使用
May 06 Java/Android
Java Spring Boot请求方式与请求映射过程分析
Jun 25 Java/Android
Java使用HttpClient实现文件下载
Aug 14 Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
You might like
解析php中die(),exit(),return的区别
2013/06/20 PHP
php使用正则验证中文
2016/04/06 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
JavaScript访问样式表代码
2010/10/15 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
2015/03/18 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
jQuery布局组件EasyUI Layout使用方法详解
2017/02/28 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
python实现简单淘宝秒杀功能
2018/05/03 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
Django 实现图片上传和显示过程详解
2019/07/18 Python
python算的上脚本语言吗
2020/06/22 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
华丽的手绘陶瓷:MacKenzie-Childs
2017/02/04 全球购物
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
彪马日本官网:PUMA日本
2019/01/31 全球购物
教师推荐信范文
2013/11/24 职场文书
《记承天寺夜游》教学反思
2014/02/16 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
财会专业毕业生自荐信
2014/07/09 职场文书
七夕活动策划方案
2014/08/16 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL
nginx实现动静分离的方法示例
2021/11/07 Servers
Apache POI的基本使用详解
2021/11/07 Servers