解析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 18 Java/Android
Java反应式框架Reactor中的Mono和Flux
Jul 25 Java/Android
使用springMVC所需要的pom配置
Sep 15 Java/Android
Java实现房屋出租系统详解
Oct 05 Java/Android
springboot如何接收application/x-www-form-urlencoded类型的请求
Nov 02 Java/Android
JPA 通过Specification如何实现复杂查询
Nov 23 Java/Android
Java实现给Word文件添加文字水印
Feb 15 Java/Android
MybatisPlus EntityWrapper如何自定义SQL
Mar 22 Java/Android
Netty分布式客户端接入流程初始化源码分析
Mar 25 Java/Android
Mybatis-Plus 使用 @TableField 自动填充日期
Apr 26 Java/Android
Android Gradle 插件自定义Plugin实现注意事项
Jun 16 Java/Android
maven 解包依赖项中的文件的解决方法
Jul 15 Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
You might like
第十二节 类的自动加载 [12]
2006/10/09 PHP
MySQL数据源表结构图示
2008/06/05 PHP
php 分库分表hash算法
2009/11/12 PHP
Zend Framework教程之Application和Bootstrap用法详解
2016/03/10 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
flexigrid 参数说明
2010/11/23 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
js使用for循环及if语句判断多个一样的name
2014/09/09 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
原生JS与JQ获取元素的区别详解
2020/02/13 Javascript
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
python 装饰器重要在哪
2021/02/14 Python
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
一些.net面试题
2014/10/06 面试题
怎么写好自荐信
2013/10/30 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
党员违纪检讨书
2014/02/18 职场文书
2014年党员个人工作总结
2014/12/02 职场文书