解析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 Shutdown Hook场景使用及源码分析
Jun 15 Java/Android
Java并发编程之Executor接口的使用
Jun 21 Java/Android
springboot如何初始化执行sql语句
Jun 22 Java/Android
死磕 java同步系列之synchronized解析
Jun 28 Java/Android
java实现对Hadoop的操作
Jul 01 Java/Android
SpringBoot+Redis实现布隆过滤器的示例代码
Mar 17 Java/Android
Java 多线程协作作业之信号同步
May 11 Java/Android
Android Studio实现简易进制转换计算器
May 20 Java/Android
Java实现扫雷游戏详细代码讲解
May 25 Java/Android
Java实现带图形界面的聊天程序
Jun 10 Java/Android
springboot读取resources下文件的方式详解
Jun 21 Java/Android
SpringBoot深入分析讲解监听器模式下
Jul 15 Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
You might like
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
谈谈JS中的!!
2017/12/07 Javascript
vue实现模态框的通用写法推荐
2018/02/26 Javascript
webpack4 css打包压缩问题的解决
2018/05/18 Javascript
react中实现搜索结果中关键词高亮显示
2018/07/31 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
vue实现登录拦截
2020/06/29 Javascript
python计算最小优先级队列代码分享
2013/12/18 Python
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
2016/11/16 Python
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
Python构建XML树结构的方法示例
2017/06/30 Python
python 实现敏感词过滤的方法
2019/01/21 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
Python变量作用域LEGB用法解析
2020/02/04 Python
python 画图 图例自由定义方式
2020/04/17 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
python statsmodel的使用
2020/12/21 Python
python 基于DDT实现数据驱动测试
2021/02/18 Python
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
HTML5教程之html 5 本地数据库(Web Sql Database)
2014/04/03 HTML / CSS
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
what is the difference between ext2 and ext3
2015/08/25 面试题
致200米运动员广播稿
2014/02/06 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS