解析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 11 Java/Android
Java基于字符界面的简易收银台
Jun 26 Java/Android
如何给HttpServletRequest增加消息头
Jun 30 Java/Android
新手初学Java网络编程
Jul 07 Java/Android
关于springboot 配置date字段返回时间戳的问题
Jul 25 Java/Android
Java Spring 控制反转(IOC)容器详解
Oct 05 Java/Android
Java并发编程之原子性-Atomic的使用
Mar 16 Java/Android
关于Mybatis中SQL节点的深入解析
Mar 19 Java/Android
Android自定义scrollview实现回弹效果
Apr 01 Java/Android
Java GUI编程菜单组件实例详解
Apr 07 Java/Android
详解Android中的TimePickerView(时间选择器)的用法
Apr 30 Java/Android
Java实现注册登录跳转
Jun 16 Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
You might like
php使用filter_var函数判断邮箱,url,ip格式示例
2019/07/06 PHP
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
bootstrap 设置checkbox部分选中效果
2017/04/20 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
js实现tab栏切换效果
2020/08/02 Javascript
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
简单谈谈python的反射机制
2016/06/28 Python
python常见的格式化输出小结
2016/12/15 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
Python标准库itertools的使用方法
2020/01/17 Python
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
仓库班组长岗位职责
2013/12/12 职场文书
学生生病请假条范文
2014/02/16 职场文书
春节晚会主持词
2014/03/24 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
普通话宣传标语
2014/06/26 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS