欢迎点击「算法与编程之美」↑关注我们!
本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。
1 问题描述
最近完成了一个用SSH框架做的学生银行卡更改系统,在做的过程中也遇到了很多困难,其中有一个就是通过联表查询,并把数据交给前端。以前学的主要是SSM框架中利用Mybatis进行联表查询,突然来一个SSH框架还真是有一点懵了。
2 问题分析
这个问题就是要通过一个一对一的联表查询,就是我这里有一张学生信息表和一张银行卡的信息表。我要通过查询这两张表,将学生和对应银行卡对应之后,将JSON格式的数据交给前端。这就涉及到了两个问题,如何联表查询和如何让查出来的数据呈现为JSON格式。
3 解决方案
刚开始的时候,还不知道可以用@Query注解来写联表查询的SQL语句,并让这个查询语句让注解的方法去执行。也不知道如何将查询到的数据已键值对的方式供前端使用。之后在老师的点播和百度的帮助下自己也解决了这个问题。
首先,这是我在dao层接口中的联表查询的方法,这个方法要把它设置为Object[]数组类型的List集合,给方法一个@Query的注解,并将注解中value赋值为联表查询的SQL语句,后面还有跟一个nativeQuery = true。自己再创建一个实体类BankCardApplyModel,将查询的属性全部放在里面,以便于后面给前端提供JSON数据,比如:
接下来就是在Service层将数据转化为JSON格式,我的方法是通过遍历刚刚查询的数据,创建一个BankCardApplyModel数据类型的集合,ArrayList可以很方便的进行增加和删减集合内元素的操作,再定义一个Object[]数据类型的集合变量tmpList,给tmpList赋值为联表查询的结果,用循环遍历tmpList,在循环中定义一个BankCardApplyModel的变量来接收遍历的值,并且其遍历的顺序和你的SQL语句的查询顺序是完全相同的,list.add(model)这句代码就是刚刚说的增加集合内元素,将遍历的结果添加到list里面去,这样list里面的数据就全部为JSON格式的数据,我们也就达到了我们的目的,代码如下:
4 总结
学习是一个拓展的过程,只有不断地学习更好的方法,自己的代码才会的到优化,也会被别人认可,每次自己学会一点东西,都会觉得自己很有成就感可能这就是兴趣的力量吧,希望本文章能帮助那些和我遇到相同问题的小伙伴。
温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!
领取专属 10元无门槛券
私享最新 技术干货