gpt4 book ai didi

SQL返回Map集合或者对象的操作

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 35 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章SQL返回Map集合或者对象的操作由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

需求:

在下面的sql中我们需要返回一个sum函数和一个count函数,因为两个返回的值都不是表中的字段,所以这里需要考虑的是我的sql返回值类型应该是什么?

SQL返回Map集合或者对象的操作

在日常的开发中,遇到这种问题我们首先会想到两种返回值类型,一种是将total和num设置为key,封装到map中.

另一种是封装一个对象,将total和num设置为这个对象的两个成员变量,下面描述一下使用这两种方法在分层开发中各个层中的用法.

方法一:使用对象作为返回值类型

1.首先封装一个对象

SQL返回Map集合或者对象的操作

可以看到这个对象中的num和total两个成员变量就是我们sql语句中的两个返回值(total是sum函数的别名,num是count函数的别名) 。

2.controller层

在controller层中,就是这行代码最终使用了上面的sql语句与数据库进行交互,他的返回值类型是RedPackCountBo,也就是我们封装的对象.

SQL返回Map集合或者对象的操作

3.service层

service层的返回值也是这个对象,不做赘述 。

SQL返回Map集合或者对象的操作

4.serviceImpl层

SQL返回Map集合或者对象的操作

5.mapper.java层

SQL返回Map集合或者对象的操作

6.mapper.xml层(重点)

SQL返回Map集合或者对象的操作

使用这种方法我们就能将total和Num以对象的形式返回到controller层,在需要使用这两个值的地方我们直接使用对象取值的方式获取就可以了.

在这里再说一个点:

如果需要传递一个以上的参数到sql语句中的时候,可以使用@param()注解或者封装到map集合中以map的形式传递到sql。我在这里一共传递了三个参数,使用了map的形式将参数进行封装,所以sql语句中的parameterType是java.util.Map 。

SQL返回Map集合或者对象的操作

方法二:使用Map作为返回值类型

1.controller层

SQL返回Map集合或者对象的操作

2.service层

SQL返回Map集合或者对象的操作

3.serviceImpl层

SQL返回Map集合或者对象的操作

4.mapper.java层

SQL返回Map集合或者对象的操作

5.mapper.xml层

SQL返回Map集合或者对象的操作

通过这种方法也可以实现需求,但是我个人觉得封住一个对象(也就是方法一)用的更爽,因为封装map可能会因为你最终需求的数据类型不同来进行一系列的数据类型转换,可能会出现java.lang.classCastException(类型转换异常) 。

我在使用map作为返回值类型的时候,从数据库中返回的count函数值(也就是num)的数据类型是Long型,sum函数(也就是total)返回值类型是BigDecimal类型(使用Object的getClass()方法可以查看数据类型),然后自己又做了类型转换.

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/qq_43655835/article/details/96999947 。

最后此篇关于SQL返回Map集合或者对象的操作的文章就讲到这里了,如果你想了解更多关于SQL返回Map集合或者对象的操作的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com