猿小白888 2023-01-13 13:39 采纳率: 25%
浏览 40

spring-JDBC-Templent 处理1对多结果集

spring-JDBC-Templent 处理1对多结果集

spring-JDBC-Templent 处理1对多结果集,返回对象为listA,其中A对象中包含listB,B为子对象

  • 如何处理结果集?
  • 写回答

2条回答 默认 最新

  • sclience_kang 2023-01-13 14:48
    关注

    1.写一个方法,封装返回参数,封装A对象,封装B对象,A对象中有一个属性叫

    ```java
    ```List<B> children
    

    2.查询出来的结果集合一定是一个全量数据,首先区分,可以使用Stream流,根据筛选条件,区分父子,父集合,子集合
    3.创建一个集合,用来存放符合条件的子集,遍历父集合,再父集合中 再遍历子集合,根据筛选条件,如果符合条件将其添加到刚才创建的集合中,这样childRen就好了 ,然后创建A对象 把属性填上,把children进行赋值,封装返回的ListA 遍历完的结果 添加到集合中返回即可。
    4.思路不用代码体现可能会有点乱,仅供参考

    5.提供之前封装的代码,仅供参考

    
    ```java
     /**
         * 封装返回 父节点  和父节点下的子节点 主题域
         * @param parent
         * @param childList
         * @return
         */
        public ThemeFieldTempBO getTreeData(QuotaThemeFiled parent,List<QuotaThemeFiled> childList){
    
            List<ThemeFieldBO> rspList=new ArrayList<>();
    
                    ThemeFieldTempBO par=new ThemeFieldTempBO();
                    par.setKey(parent.getThemeId().toString());
                    par.setValue(parent.getThemeId().toString());
                    par.setTitle(parent.getThemeName());
    
            if (parent!=null&&childList.size()>0){
                for (QuotaThemeFiled bo:childList){
                    if (parent.getThemeId()==bo.getpId()){
                        ThemeFieldBO chi=new ThemeFieldBO();
                        chi.setKey(bo.getThemeId().toString());
                        chi.setValue(bo.getThemeId().toString());
                        chi.setTitle(bo.getThemeName());
                        rspList.add(chi);
                    }
                }
            }
    
            par.setChildren(rspList);
            return par;
        }
    
    
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 1月13日

悬赏问题

  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥15 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?