欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2023/12/20 编程问答 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 如何使用myabtisPlust将查询出的数据封装给vo对象 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

  • 效果演示
  • 准备工作
    • 表结构
    • 实体类
    • 用于返回数据给前端的Vo部分
  • 控制器层部分
  • 业务层实现方法

效果演示

  • 将目的地和对应的攻略分类显示出来

准备工作

表结构

实体类

  • 攻略分类实体
  • 目的地实体

用于返回数据给前端的Vo部分

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

控制器层部分

  • 注入攻略分类的业务层
@Autowiredprivate IStrategyCatalogService strategyCatalogService;
  • 共享此数据,即给前端显示出列表的所有数据

业务层实现方法

  • 主要的逻辑是sql语句用到了聚合函数
  • 将目的地,和对应的所有攻略分类名和攻略分类id查询出来
  • 通过mabatisPlus中的listMaps方法, 将sql语句中的数据封装进List<Map<String, Object>> list 中,然后将这些数据遍历出来,放进vo对象中,给到前端页面即可
  • 因为查询出的数据ids和names 都是字符串有,,所以另外设一个方法parseCatalog,将这2个参数放入,把值放进List中返回出来(也就是vo中的攻略分类集合)
@Overridepublic List<CatalogVo> queryGroupCatalog() {List<CatalogVo> vos = new ArrayList<>(); // 查询数据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;}

总结

以上是生活随笔为你收集整理的如何使用myabtisPlust将查询出的数据封装给vo对象的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。