广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SQL返回Map集合或者对象的操作
  • 614
分享到

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

2024-04-02 19:04:59 614人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

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

需求:

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

在这里插入图片描述

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

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

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

1.首先封装一个对象

在这里插入图片描述

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

2.controller层

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

在这里插入图片描述

3.service层

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

在这里插入图片描述

4.serviceImpl层

在这里插入图片描述

5.mapper.java层

在这里插入图片描述

6.mapper.xml层(重点)

在这里插入图片描述

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

在这里再说一个点:

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

在这里插入图片描述

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

1.controller层

在这里插入图片描述

2.service层

在这里插入图片描述

3.serviceImpl层

在这里插入图片描述

4.mapper.java层

在这里插入图片描述

5.mapper.xml层

在这里插入图片描述

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

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: SQL返回Map集合或者对象的操作

本文链接: https://www.lsjlt.com/news/130738.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL返回Map集合或者对象的操作
    需求: 在下面的sql中我们需要返回一个sum函数和一个count函数,因为两个返回的值都不是表中的字段,所以这里需要考虑的是我的sql返回值类型应该是什么? 在日常的开发中,遇到...
    99+
    2022-11-12
  • SQL返回Map集合或者对象的方法
    本篇内容介绍了“SQL返回Map集合或者对象的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!需求:在下面的sql中我们需要返回一个sum...
    99+
    2023-06-20
  • Mybatis查询语句返回对象和泛型集合的操作
    Mybatis查询语句返回对象和泛型集合 EmpMapper映射接口: package cn.et.mybatis.lesson03; import java.util.Lis...
    99+
    2022-11-12
  • SQL和Python的集合操作对比
    本篇内容主要讲解“SQL和Python的集合操作对比”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL和Python的集合操作对比”吧!集合操作分析式问题通常...
    99+
    2022-10-18
  • List集合按某个属性或者字段进行分组的操作
    List集合按某个属性或者字段进行分组 List<Object>分组 按照Student对象中的Institution(学院)属性进行分组统计 核心代码 Map<...
    99+
    2022-11-12
  • stream流的使用-获取list集合中对象的单个字段list集合,进行累加操作
    Stream流的使用 场景及代码案例源于实际项目 1. 需求描述 现存一list集合,其中保存了投资人的信息。 Person (name, age, money rateOfReturn) ...
    99+
    2023-09-08
    java lambda Stream流 stream java8
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作