解析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 相关文章推荐
Feign调用全局异常处理解决方案
Jun 24 Java/Android
Spring整合Mybatis的全过程
Jun 28 Java/Android
mybatis中sql语句CDATA标签的用法说明
Jun 30 Java/Android
使用Springboot实现健身房管理系统
Jul 01 Java/Android
java泛型通配符详解
Jul 25 Java/Android
Java后台生成图片的完整步骤
Aug 04 Java/Android
spring cloud 配置中心native配置方式
Sep 25 Java/Android
Java中的随机数Random
Mar 17 Java/Android
零基础学java之带参数以及返回值的方法
Apr 10 Java/Android
零基础学java之循环语句的使用
Apr 10 Java/Android
Spring Boot项目如何优雅实现Excel导入与导出功能
Jun 10 Java/Android
一文了解Java动态代理的原理及实现
Jul 07 Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
You might like
php auth_http类库进行身份效验
2009/03/19 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
在jQuery中 关于json空对象筛选替换
2013/04/15 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
vue-cli+webpack记事本项目创建
2017/04/01 Javascript
xmlplus组件设计系列之按钮(2)
2017/04/26 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
angularjs中判断ng-repeat是否迭代完的实例
2018/09/12 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
详解Vue中组件的缓存
2019/04/20 Javascript
微信小程序实现首页弹出广告
2020/12/03 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
Python解析xml中dom元素的方法
2015/03/12 Python
使用python实现BLAST
2018/02/12 Python
python如何使用unittest测试接口
2018/04/04 Python
python中下标和切片的使用方法解析
2019/08/27 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
Python实现一个简单的毕业生信息管理系统的示例代码
2020/06/08 Python
详解Python 函数参数的拆解
2020/09/02 Python
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
英语演讲稿范文
2014/01/03 职场文书
小学清明节活动方案
2014/03/08 职场文书
2016高考寄语集锦
2015/12/04 职场文书
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis