parameterType、resultType、resultMap的区别与不同


1. parameterType(输入类型)
1.1 传递简单类型
使用#{}占位符,或者${}进行sql拼接。

1.2 传递pojo对象
Mybatis使用ognl表达式解析对象字段的值,#{}或者${}括号中的值为pojo属性名称。

1.3 传递pojo包装对象
开发中通过可以使用pojo传递查询条件。
查询条件可能是综合的查询条件,不仅包括用户查询条件还包括其它的查询条件(比如查询用户信息的时候,将用户购买商品信息也作为查询条件),这时可以使用包装对象传递输入参数。
包装对象:Pojo类中的一个属性是另外一个pojo。
需求:根据用户名模糊查询用户信息,查询条件放到QueryVo的user属性中。
1.3.1 编写QueryVo
在这里插入图片描述
1.3.2 Mapper.xml文件
在这里插入图片描述
1.3.3 Mapper接口
在这里插入图片描述
1.3.4 测试方法
在这里插入图片描述
2. resultType(输出类型)

2.1 输出简单类型
需求:查询用户表数据条数
2.1.1 Mapper.xml文件
在这里插入图片描述
2.1.2 Mapper接口
在这里插入图片描述
2.1.3 测试方法
在这里插入图片描述
3.输出结果resultMap

resultType可以指定将查询结果映射为pojo,但需要pojo的属性名和sql查询的列名一致方可映射成功。如果sql查询字段名和pojo的属性名不一致,可以通过resultMap将字段名和属性名作一个对应关系 ,resultMap实质上还需要将查询结果映射到pojo对象中。
resultMap可以实现将查询结果映射为复杂类型的pojo,比如在查询结果映射对象中包括pojo和list实现一对一查询和一对多查询。
需求:查询订单表order的所有数据
3.1.1 声明pojo对象
在这里插入图片描述
在这里插入图片描述
由于上边的mapper.xml中sql查询列(user_id)和Order类属性(userId)不一致,所以查询结果不能映射到pojo中。
需要定义resultMap,把orderResultMap将sql查询列(user_id)和Order类属性(userId)对应起来

3.1.2 Mapper.xml文件
在这里插入图片描述
在这里插入图片描述
3.1.3 Mapper接口
在这里插入图片描述
3.1.4 测试方法
在这里插入图片描述

(本文转载于: https://blog.csdn.net/qq_39778516/article/details/84143961 consistencely的博客)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值