解析mybatis-plus中的resultMap简单使用

作者:笨蛋的生活 时间:2021-09-03 03:53:06 

不一致,那么用来接收查询出来的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简单使用

来源:https://blog.csdn.net/dsl59741/article/details/107940436

标签:mybatis-plus,resultMap
0
投稿

猜你喜欢

  • Spring5源码解析之Spring中的异步和计划任务

    2022-09-06 02:14:04
  • 如何将Mybatis连接到ClickHouse

    2023-11-06 02:35:51
  • 布隆过滤器(Bloom Filter)的Java实现方法

    2022-09-14 18:06:06
  • Android Studio 代码导航快捷键

    2023-09-28 09:58:11
  • SQL语句删除和添加外键、主键的方法

    2023-04-16 22:18:35
  • springMVC的生命周期详解

    2022-10-29 22:27:40
  • C#中如何使用Chart图表问题

    2023-04-02 16:35:06
  • C# Winform调用百度接口实现人脸识别教程(附源码)

    2021-12-27 13:17:09
  • java基础--自己动手实现一个LRU

    2023-06-25 18:21:04
  • Java中的守护线程问题

    2023-09-13 11:49:23
  • Java特性之注解和异常 Throwable

    2023-04-22 13:14:53
  • Java monitor机制使用方法解析

    2023-11-09 11:25:56
  • 利用Java工具类Hutool实现验证码校验功能

    2022-07-15 02:31:22
  • 通过实例学习Either 树和模式匹配

    2023-05-21 02:02:41
  • Java实现斗地主案例

    2023-06-01 06:43:59
  • 美化java代码,从合理注释开始

    2022-01-18 16:32:47
  • C#命令模式用法实例

    2021-10-21 12:46:02
  • C#中循环语句:while、for、foreach的使用

    2022-05-01 02:42:55
  • Kotlin协程launch启动流程原理详解

    2021-10-31 15:47:22
  • GSON实现Java对象的JSON序列化与反序列化的实例教程

    2023-11-23 12:39:02
  • asp之家 软件编程 m.aspxhome.com