解析mybatis

网友投稿 270 2022-09-13


解析mybatis

不一致,那么用来接收查询出来的result对应的数据将会是Null,如果不使用resultMap,那么一般为了避免pojo对象对应的属性为Null,会采用SQL语句中的别名,将查询出的数据库中的字段as pojo对象属性,而且,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;

phttp://rivate String unit;

private Integer count;

private Integer isDelete;

}

注意

不要在你要映射成resultMap的pojo类上加lombok的@Accessors(chain=true)的链式编程的注解,因为resultMap中的属性会报红【但是仍可使用】,如下图这样

2. 在mapper.xml中编写resultMap,并在要使用的sql查询语句里,指定result标签为resultMap和其名称

select * from pms_category where cat_id = #{cId}

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和没有该字段


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:用局域网文件共享系统实现共享文件夹安全设置(局域网设置共享文件夹的步骤)
下一篇:定时动态获取公网ip并传送至ftps服务器
相关文章

 发表评论

暂时没有评论,来抢沙发吧~