javascript
MyBatis之使用JSONObject代替JavaBean优雅返回多表查询结果
項目中需要返回多個表的查詢結果,比如user表中的用戶信息和user個人的所在班的班級信息。目前我們有user實體類和class實體類。一般情況下如果是單表查詢,比如查詢user信息,那么查詢的返回值就是一個user對象或一個user對象列表。但是像這種情況涉及兩個表的話,查詢結果的返回值該是什么呢?
解決辦法:
1.user表的屬性里添加一個class的屬性。
2.新建一個類SserClass,包含user類和class類的內容。
3.使用JSONObject!
第一種辦法需要修改user類的內容,如果是別人定義的類,那最好就不要改了,即使是自己寫的但是改代碼也不倡議。
第二種辦法不需要改代碼,但是需要新建一個類,本來一個表對應一個類,現在平白多了一個類,屬實不美觀。
第三種辦法就比較好用了!
只需要改返回值就好了!以下是我某一項目的代碼,原先是單表查詢返回一個Quality類,現在變成多表查詢了,只需要修改返回值和sql語句的返回值即可!
controller層:
service層:
mapper層:
xml文件里的sql語句:
這里需要注意使用resultType而不是resultMap
否則會報:Result Maps collection does not contain value for com.alibaba.fastjson.JSONObject
參考:前端 MyBatis 中使用 JSONObject 替代 JavaBean
總結
以上是生活随笔為你收集整理的MyBatis之使用JSONObject代替JavaBean优雅返回多表查询结果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021-10-20开发计量系统遇到的问
- 下一篇: fabric 简单理解