日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何使用myabtisPlust将查询出的数据封装给vo对象

發(fā)布時間:2023/12/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何使用myabtisPlust将查询出的数据封装给vo对象 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 效果演示
  • 準(zhǔn)備工作
    • 表結(jié)構(gòu)
    • 實體類
    • 用于返回數(shù)據(jù)給前端的Vo部分
  • 控制器層部分
  • 業(yè)務(wù)層實現(xiàn)方法

效果演示

  • 將目的地和對應(yīng)的攻略分類顯示出來

準(zhǔn)備工作

表結(jié)構(gòu)

實體類

  • 攻略分類實體
  • 目的地實體

用于返回數(shù)據(jù)給前端的Vo部分

@Setter @Getter @ToString public class CatalogVo {private String destName;private List<StrategyCatalog> catalogList = new ArrayList<>(); }

控制器層部分

  • 注入攻略分類的業(yè)務(wù)層
@Autowiredprivate IStrategyCatalogService strategyCatalogService;
  • 共享此數(shù)據(jù),即給前端顯示出列表的所有數(shù)據(jù)

業(yè)務(wù)層實現(xiàn)方法

  • 主要的邏輯是sql語句用到了聚合函數(shù)
  • 將目的地,和對應(yīng)的所有攻略分類名和攻略分類id查詢出來
  • 通過mabatisPlus中的listMaps方法, 將sql語句中的數(shù)據(jù)封裝進(jìn)List<Map<String, Object>> list 中,然后將這些數(shù)據(jù)遍歷出來,放進(jìn)vo對象中,給到前端頁面即可
  • 因為查詢出的數(shù)據(jù)ids和names 都是字符串有,,所以另外設(shè)一個方法parseCatalog,將這2個參數(shù)放入,把值放進(jìn)List中返回出來(也就是vo中的攻略分類集合)
@Overridepublic List<CatalogVo> queryGroupCatalog() {List<CatalogVo> vos = new ArrayList<>(); // 查詢數(shù)據(jù)QueryWrapper<StrategyCatalog> wrapper = new QueryWrapper<>();wrapper.select("dest_name,GROUP_CONCAT(name) names,GROUP_CONCAT(id) ids").groupBy("dest_name");List<Map<String, Object>> list = super.listMaps(wrapper); // dest_name names ids ----> vofor (Map<String,Object> map:list){CatalogVo vo = new CatalogVo();// 存目的地vo.setDestName(map.get("dest_name").toString());//目的地名字String names = map.get("names").toString();String ids = map.get("ids").toString(); // 存攻略分類集合List<StrategyCatalog> catalogList = this.parseCatalog(names,ids);vo.setCatalogList(catalogList);vos.add(vo);}return vos;}private List<StrategyCatalog> parseCatalog(String names, String ids) {List<StrategyCatalog> list = new ArrayList<>();String[] ns = names.split(",");String[] is = ids.split(",");if (ns.length > 0){for (int i=0;i<ns.length;i++){String name = ns[i];String id = is[i];if (!StringUtils.hasLength(name)){continue;}StrategyCatalog catalog = new StrategyCatalog();catalog.setName(name);catalog.setId(Long.parseLong(id));list.add(catalog);}}return list;}

總結(jié)

以上是生活随笔為你收集整理的如何使用myabtisPlust将查询出的数据封装给vo对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。