解析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 Cache和EhCache实现缓存管理方式
Jun 15 Java/Android
java泛型通配符详解
Jul 25 Java/Android
MyBatis-Plus 批量插入数据的操作方法
Sep 25 Java/Android
SpringCloud之@FeignClient()注解的使用方式
Sep 25 Java/Android
JavaCV实现照片马赛克效果
Jan 22 Java/Android
Android基于Fresco实现圆角和圆形图片
Apr 01 Java/Android
MyBatis配置文件解析与MyBatis实例演示
Apr 07 Java/Android
Android开发 使用文件储存的方式保存QQ密码
Apr 24 Java/Android
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
Apr 24 Java/Android
Java由浅入深通关抽象类与接口(上篇)
Apr 26 Java/Android
Java+swing实现抖音上的表白程序详解
Jun 25 Java/Android
Android RecyclerView实现九宫格效果
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小型企业库存管理系统的设计与实现代码
2011/05/16 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
js+css实现打字效果
2020/06/24 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
python安装numpy&amp;安装matplotlib&amp; scipy的教程
2017/11/02 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
Python模块、包(Package)概念与用法分析
2019/05/31 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
南非最受欢迎的时尚品牌:MRP
2016/09/18 全球购物
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
美国糖果店:Sugarfina
2019/02/21 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
投标服务承诺书
2014/05/28 职场文书
聚会通知怎么写
2015/04/23 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
教师节简报
2015/07/20 职场文书
公司员工宿舍管理制度
2015/08/03 职场文书
诚信教育主题班会
2015/08/13 职场文书
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS