解析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 相关文章推荐
springboot利用redis、Redisson处理并发问题的操作
Jun 18 Java/Android
Java并发编程之Executor接口的使用
Jun 21 Java/Android
分析JVM源码之Thread.interrupt系统级别线程打断
Jun 29 Java/Android
Spring实现内置监听器
Jul 09 Java/Android
Java使用jmeter进行压力测试
Jul 09 Java/Android
浅谈sql_@SelectProvider及使用注意说明
Aug 04 Java/Android
logback如何自定义日志存储
Aug 30 Java/Android
Java Spring 控制反转(IOC)容器详解
Oct 05 Java/Android
Java基于Dijkstra算法实现校园导游程序
Mar 17 Java/Android
java版 联机五子棋游戏
May 04 Java/Android
springboot创建的web项目整合Quartz框架的项目实践
Jun 21 Java/Android
IDEA中sout快捷键无效问题的解决方法
Jul 23 Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
You might like
PHP匿名函数和use子句用法实例
2016/03/16 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
Prototype 学习 Prototype对象
2009/07/12 Javascript
javascript document.execCommand() 常用解析
2009/12/14 Javascript
JavaScript 比较时间大小的代码
2010/04/24 Javascript
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
详解JS面向对象编程
2016/01/24 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
python数据挖掘需要学的内容
2019/06/23 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
工程管理专业毕业生自荐信
2014/01/24 职场文书
企业内控岗位的职责
2014/02/07 职场文书
售房协议书
2014/08/19 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
PyQt5实现多张图片显示并滚动
2021/06/11 Python
Python 可迭代对象 iterable的具体使用
2021/08/07 Python