resultType resultMap parameterType parameterMap的区别

一 resultType
主要针对从数据库中提取相应的数据出来,返回结果类型
1.sql查询的列名要和resultType指定的pojo的属性名相同,指定相同方可映射成功
但是必须保证查询结果集中的属性 和 bean对象类中的属性是一一对应的,此时大小写不敏感,但是有限制。
使用resultType时我们应该注意:sql查询的列名要和resultType指定pojo的属性名相同,指定相同属性方可映射成功,如果sql查询的列名要和resultType指定pojo的属性名全部不相同(或是部分不相同),则映射到pojo对象中的对应属性为null。例如有时候我们不需要查询select * from user where id = ?而是select username,address _address where id = ? 此时我们给查询的address列名给了一个别名_address,这样我们通过查询表中address的数据然后在将它映射到User对象时,该对象的address属性就为null,即没将从表中查询到的address数据映射到user对象的address属性中。
在这里插入图片描述

二 resultMap(需要配置)
从数据库提取数据,返回结果集
如果sql 查询列名和最终映射的pojo属性名不一致,使用resultmap就可以将一一对应关系(列名和属性名映射配置)
在这里插入图片描述
然后在UserMapper.xml中使用它:
在这里插入图片描述
UserMapper.java文件中:
在这里插入图片描述
在这里插入图片描述
输入映射: 
  parameterType:
通过parameterType传入简单类型或对象,我们之前讲过了,接下来我们要讲的是parameterType传递pojo包装对象。可以定义pojo包装类型扩展mapper接口输入参数的内容。

看下我们的需求:定义查询条件查询用户信息,需要向statement输入查询条件,查询条件可以有user信息、商品信息等等。

首先我们在domain包下创建UserCustom类并继承User,
在这里插入图片描述
UserCustom类用于对User属性进行扩展(例如User中只有用户信息,而我们可以在UserCustom中加入商品信息),然后再创建User的包装类UserQueryVo.java:
在这里插入图片描述
UserMapper.xml中添加如下配置信息:

在这里插入图片描述
UserMapper.java中添加方法:
在这里插入图片描述
然后便可以进行测试:
在这里插入图片描述
小结
resultType:sql查询的列名要和resultType指定的pojo的属性名相同,指定相同方可映射成功
resultmap:sql查询的列名要和pojo指定属性名不一致 但是需要配置

Parameter 带参数 映射实体类
parameter 带参数映射外部map

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值