解析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 相关文章推荐
spring cloud gateway中如何读取请求参数
Jul 15 Java/Android
java设计模式--原型模式详解
Jul 21 Java/Android
java中用float时,数字后面加f,这样是为什么你知道吗
Sep 04 Java/Android
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
Dec 06 Java/Android
Java练习之潜艇小游戏的实现
Mar 16 Java/Android
java项目构建Gradle的使用教程
Mar 24 Java/Android
Java中Quartz高可用定时任务快速入门
Apr 03 Java/Android
Flutter集成高德地图并添加自定义Maker的实践
Apr 07 Java/Android
Java线程的6种状态与生命周期
May 11 Java/Android
Spring Cloud OpenFeign模版化客户端
Jun 25 Java/Android
利用Java连接Hadoop进行编程
Jun 28 Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
You might like
php中并发读写文件冲突的解决方案
2013/10/25 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
Zend Framework入门教程之Zend_Config组件用法详解
2016/12/09 PHP
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
js单例模式的两种方案
2013/10/22 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
javascript关于继承解析
2016/05/10 Javascript
Bootstrap模块dropdown实现下拉框响应
2016/05/22 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
微信小程序swiper实现滑动放大缩小效果
2018/11/15 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
利用Python实现命令行版的火车票查看器
2016/08/05 Python
django框架ModelForm组件用法详解
2019/12/11 Python
使用pytorch完成kaggle猫狗图像识别方式
2020/01/10 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
python 命名规范知识点汇总
2020/02/14 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
python 通过文件夹导入包的操作
2020/06/01 Python
python图片合成的示例
2020/11/09 Python
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
专科毕业生学习生活的自我评价
2013/10/26 职场文书
基层工作经历证明
2014/01/13 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
实习生工作证明范本
2014/09/14 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
钳工实训报告总结
2014/11/04 职场文书
2014年医生工作总结
2014/11/21 职场文书
安全第一课观后感
2015/06/18 职场文书
CSS的class与id常用的命名规则
2021/05/18 HTML / CSS
Python中Matplotlib的点、线形状、颜色以及绘制散点图
2022/04/07 Python