目录
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 booths
WHERE 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,后续会有更新,欢迎大家关注。