解析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 相关文章推荐
MybatisPlus代码生成器的使用方法详解
Jun 13 Java/Android
Java并发编程之详解CyclicBarrier线程同步
Jun 23 Java/Android
使用feign服务调用添加Header参数
Jun 23 Java/Android
Java多条件判断场景中规则执行器的设计
Jun 26 Java/Android
Java集成swagger文档组件
Jun 28 Java/Android
HashMap实现保存两个key相同的数据
Jun 30 Java/Android
JUnit5常用注解的使用
Jul 02 Java/Android
Spring Boot 排除某个类加载注入IOC的操作
Aug 02 Java/Android
OpenCV实现普通阈值
Nov 17 Java/Android
详细介绍Java中的CyclicBarrier
Apr 13 Java/Android
Android开发实现极为简单的QQ登录页面
Apr 24 Java/Android
Java实现添加条码或二维码到Word文档
Jun 01 Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
You might like
一贴学会PHP 新手入门教程
2009/08/03 PHP
CURL状态码列表(详细)
2013/06/27 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
Javascript对象Clone实例分析
2015/06/09 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
jQuery实现的简单拖动层示例
2017/02/22 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
python和pyqt实现360的CLable控件
2014/02/21 Python
使用python实现拉钩网上的FizzBuzzWhizz问题示例
2014/05/05 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
pandas每次多Sheet写入文件的方法
2018/12/10 Python
Python tkinter模版代码实例
2020/02/05 Python
python 基于wx实现音乐播放
2020/11/24 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
2021/01/15 Python
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
介绍一下linux的文件权限
2012/02/15 面试题
党风廉政承诺书
2014/03/27 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
计算机求职自荐信范文
2014/04/19 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
倡议书的写法
2014/08/30 职场文书
努力学习保证书
2015/02/26 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
创业的9条正确思考方式
2019/08/26 职场文书