解析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 相关文章推荐
IDEA使用SpringAssistant插件创建SpringCloud项目
Jun 23 Java/Android
spring项目中切面及AOP的使用方法
Jun 26 Java/Android
Spring Boot 排除某个类加载注入IOC的操作
Aug 02 Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 Java/Android
springboot新建项目pom.xml文件第一行报错的解决
Jan 18 Java/Android
Spring Boot 使用 Spring-Retry 进行重试框架
Apr 24 Java/Android
Spring Data JPA框架的核心概念和Repository接口
Apr 28 Java/Android
Spring 使用注解开发
May 20 Java/Android
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
Jun 01 Java/Android
springboot读取resources下文件的方式详解
Jun 21 Java/Android
SpringBoot项目部署到阿里云服务器的实现步骤
Jun 28 Java/Android
Java使用HttpClient实现文件下载
Aug 14 Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
聊聊SpringBoot自动装配的魔力
Nov 17 #Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 #Java/Android
OpenCV实现普通阈值
You might like
PHP的面向对象编程
2006/10/09 PHP
php在线生成ico文件的代码
2007/10/09 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
transport.js和jquery冲突问题的解决方法
2015/02/10 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
javascript合并表格单元格实例代码
2016/01/03 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
JavaScript实现图片轮播特效
2019/10/23 Javascript
JS 遍历 json 和 JQuery 遍历json操作完整示例
2019/11/11 jQuery
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
tensorflow 环境变量设置方式
2020/02/06 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
2020/03/05 Python
python中的测试框架
2020/11/13 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
JSF的标签库有哪些
2012/04/27 面试题
大学生求职信怎么写
2015/03/19 职场文书
学术会议通知
2015/04/15 职场文书
幼儿园见习总结
2015/06/23 职场文书
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript
JavaScript的function函数详细介绍
2021/11/20 Javascript