解析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 Swing实现自助取款机系统
Jun 11 Java/Android
springboot利用redis、Redisson处理并发问题的操作
Jun 18 Java/Android
深入理解以DEBUG方式线程的底层运行原理
Jun 21 Java/Android
Java如何实现树的同构?
Jun 22 Java/Android
Java 数组内置函数toArray详解
Jun 28 Java/Android
Java后台生成图片的完整步骤
Aug 04 Java/Android
Mybatis是这样防止sql注入的
Dec 06 Java/Android
关于maven依赖 ${xxx.version}报错问题
Jan 18 Java/Android
Spring Boot 使用 Spring-Retry 进行重试框架
Apr 24 Java/Android
Java 定时任务技术趋势简介
May 04 Java/Android
详解Spring Bean的配置方式与实例化
Jun 10 Java/Android
Java Spring Boot请求方式与请求映射过程分析
Jun 25 Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
You might like
php读取msn上的用户信息类
2008/12/05 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
webpack独立打包和缓存处理详解
2017/04/03 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
Python实现发送email的几种常用方法
2014/08/18 Python
在Python中使用元类的教程
2015/04/28 Python
由浅入深讲解python中的yield与generator
2017/04/05 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
python hook监听事件详解
2018/10/25 Python
Python使用贪婪算法解决问题
2019/10/22 Python
Python requests上传文件实现步骤
2020/09/15 Python
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
美国最大点评网站:Yelp
2018/02/14 全球购物
常见的软件开发流程有哪些
2015/11/14 面试题
会计岗位职责
2013/11/08 职场文书
一年级数学教学反思
2014/02/01 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
单位介绍信格式
2015/01/31 职场文书
Win11更新失败并提示0xc1900101
2022/04/19 数码科技