SpringBoot实战2

目录

1.如何返回两个类型的数据?User和Booth

2.如何使用MyBatis遍历一个数组进行查询?

3.前端要的数据太多太杂,我们拼接多个List,前端找数据困难,浪费时间。因此我们进行三表联表查询。

1.首先创建一个vo包,专门用来解决数据不对应的问题,然后创建一个对应的VOjava类

2.在这个类中放任何你想要得到的数据,记得添加一个@Data注解

3.从controller调用service的方法,从service调用mapper的方法,mapper有对应的xml,xml中是与数据库进行交互的sql

四、总结


1.如何返回两个类型的数据?User和Booth

针对这两个不同类型的List,我们最后的返回值要求将这两个List组合起来,就可以返回一个Map,将两个list放入(put)map中。

2.如何使用MyBatis遍历一个数组进行查询?

类似这样的sql,我们如何在xml中写呢?

1,2,3,4就是arrayList中存储的数据。

我的实际应用:

每个用户有关联的booth_number,这些booth_number都存储在arrayList中,然后用这个list查询所有的摊位信息。即selelct * from  booths where booth_number in(1,2,3,4);

下面是我的代码:

 <select id="selectRentList" resultType="com.team.entity.Booths">SELECT * FROM boothsWHERE booth_number IN<foreach item="usingBooth" collection="list" open="(" separator="," close=")">#{usingBooth}</foreach></select>

使用一个foreach循环,遍历list中的内容,collection是要遍历的数据,open用(开始,close用(结束,separator用【,】分隔。这也很好的体现了MyBatis动态sql的特性。

3.前端要的数据太多太杂,我们拼接多个List,前端找数据困难,浪费时间。因此我们进行三表联表查询。

那我们enetity中没有对应的实体类怎么办?

1.首先创建一个vo包,专门用来解决数据不对应的问题,然后创建一个对应的VOjava类

2.在这个类中放任何你想要得到的数据,记得添加一个@Data注解

*MyBatis中数据都被封装了,我们需要使用setter和getter方法来修改和得到数据。

3.从controller调用service的方法,从service调用mapper的方法,mapper有对应的xml,xml中是与数据库进行交互的sql

mapper需要和xml的resulyMap保持一致:

以下是一个xml实例:

**对于复杂sql,在写xml之前,可以先把sql在数据库中执行一下,语句正确再粘到xml中。这样可以节约时间,否则每次都要重启项目。

四、总结

今天先到这里,大家有什么想法,欢迎在评论区留言。我已经大四了,现在才发现代码的优雅与魅力,我想学很多东西,最近了解到了robot-framework,后续会有更新,欢迎大家关注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/449731.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【个性化的健康管理建议】Health-LLM:解决传统医学大模型,难以充分满足个体化需求

Health-LLM&#xff1a;解决传统医学大模型&#xff0c;难以充分满足个体化需求 提出背景个性化方案 大模型 AutoML 信息检索&#xff08;IR&#xff09;工作流程 效果 论文&#xff1a;https://arxiv.org/pdf/2402.00746.pdf 代码&#xff1a;https://github.com/jmyissb/…

爬虫入门到精通_基础篇4(BeautifulSoup库_解析库,基本使用,标签选择器,标准选择器,CSS选择器)

1 Beautiful说明 BeautifulSoup库是灵活又方便的网页解析库&#xff0c;处理高效&#xff0c;支持多种解析器。利用它不用编写正则表达式即可方便地实线网页信息的提取。 安装 pip3 install beautifulsoup4解析库 解析器使用方法优势劣势Python标准库BeautifulSoup(markup,…

服了,一个ThreadLocal被问出了花

分享是最有效的学习方式。 博客&#xff1a;https://blog.ktdaddy.com/ 故事 地铁上&#xff0c;小帅无力地倚靠着杆子&#xff0c;脑子里尽是刚才面试官的夺命连环问&#xff0c;“用过TheadLocal么&#xff1f;ThreadLocal是如何解决共享变量访问的安全性的呢&#xff1f;你…

跨平台开发:浅析uni-app及其他主流APP开发方式

随着智能手机的普及&#xff0c;移动应用程序&#xff08;APP&#xff09;的需求不断增长。开发一款优秀的APP&#xff0c;不仅需要考虑功能和用户体验&#xff0c;还需要选择一种适合的开发方式。随着技术的发展&#xff0c;目前有多种主流的APP开发方式可供选择&#xff0c;其…

postgres:锁申请

什么是弱锁&#xff0c;强锁&#xff1f; 为了提高并发控制&#xff0c;PG通过将锁信息在本地缓存&#xff08;**LOCALLOCK**&#xff09;和快速处理常见锁&#xff08;fastpath&#xff09;&#xff0c;减少了对共享内存的访问&#xff0c;提高性能。从而出现了弱锁和强锁的概…

羊大师:冬季出行,心血管病患者应做好哪些准备?

羊大师&#xff1a;冬季出行&#xff0c;心血管病患者应做好哪些准备&#xff1f; 冬季将至&#xff0c;气温骤降&#xff0c;寒冷的天气不仅让人感到不适&#xff0c;对于患有心血管病的人来说&#xff0c;更是需要格外注意。在这个寒冷的季节里&#xff0c;心血管病患者需要…

MH-ET LIVE Boards(ATTiny88)实验一---点亮板载灯

MH-ET LIVE Boards(ATTiny88&#xff09;实验一点亮板载灯 在Arduino IDE中添加开发板资源包加入开发板json添加开发板 安装开发板驱动方法一&#xff1a;github下载2.0a4.rar方法二&#xff1a;开发板的package包中自带的2.0a4.rar安装驱动确认安装成功 blink.ino程序测试![在…

C++:输入流/输出流

C流类库简介 C为了克服C语言中的scanf和printf存在的缺点。&#xff0c;使用cin/cout控制输入/输出。 cin&#xff1a;表示标准输入的istream类对象&#xff0c;cin从终端读入数据。cout&#xff1a;表示标准输出的ostream类对象&#xff0c;cout向终端写数据。cerr&#xff…

Jmeter学习系列之四:测试计划元素介绍

测试计划元素 JMeter包含各种相互关联但为不同目的而设计的元素。在开始使用JMeter之前&#xff0c;最好先了解一下JMeter的一些主要元素。 注意:测试计划包含至少一个线程组。 以下是JMeter的一些主要组件: 测试计划&#xff08;Plan&#xff09;线程组(Thread Group)控制器…

数据结构—基础知识:哈夫曼编码

文章目录 数据结构—基础知识&#xff1a;哈夫曼编码哈夫曼编码的主要思想有关编码的概念哈夫曼编码满足两个性质&#xff1a; 数据结构—基础知识&#xff1a;哈夫曼编码 哈夫曼编码的主要思想 在进行数据压缩时&#xff0c;为了使压缩后的数据文件尽可能短&#xff0c;可采…

车企销售官网搭建流程

引言 近期在整理车企销售官网相关的一些材料时,由于之前也没接触过相关的业务,所以也是一边学习一遍整理,将自己理解官的网搭建流程给梳理出来,供与大家交流讨论。 官网搭建流程 官网搭建流程我分为两大步:网站Demo设计和网站搭建部署,具体流程如下图所示。 流程的具体…

03.PostgreSQL排序和分页

当我们使用SELECT语句查询表中数据的时候,PostgreSQL不确保按照一定的顺序返回结果。如果想要将查询的结果按照某些规则排序显示,需要使用ORDER BY子句。 1. 排序规则 使用ORDER BY 子句排序 ASC: 升序 DESC:降序 ORDER BY 子句在SELECT语句的结尾 1.1 单列排序 是指按…