资讯详情

省市县的递归查询

项目地址查询,省、市、县以递归集、市、县以子集。Vo如下:

@Data public class AreaQueryVo {      @JsonSerialize(using = ToStringSerializer.class)     private Integer id;      private String cname;      private List<AreaQueryVo> areaQueryVos; }

@Data注解为lombok,了解自己不知道的事情。

controller层代码如下:

/**      * 查询地址表      * @return      */     @RequestMapping("/selectArea")     private List<AreaQueryVo> selectArea() {         List<AreaQueryVo> areaQueryVos;         //查询id对应数据为0         areaQueryVos = areaService.selectArea(0L);         for (AreaQueryVo areaQueryVo : areaQueryVos) {             List<AreaQueryVo> aqv = areaService.selectArea(areaQueryVo.getId());             digui(aqv);             areaQueryVo.setAreaQueryVos(aqv);         }         return areaQueryVos;     }      public void digui(List<AreaQueryVo> aqv) {         List<AreaQueryVo> areaQueryVoList;         for (AreaQueryVo areaQueryVo : aqv) {             areaQueryVoList = areaService.selectArea(areaQueryVo.getId());             if (areaQueryVoList.size() > 0) {                 areaQueryVo.setAreaQueryVos(areaQueryVoList);                 digui(areaQueryVoList); //循环调用自己             }         }     }

service层:

 @Override     public List<AreaQueryVo> selectArea(long parentId) {         List<AreaQueryVo> areaQueryVos = areaDao.selectArea(parentId);         return areaQueryVos;     }

这里记得做下非空判断,防止查不到数据出错。

dao层代码如下:

 <select id="selectArea" resultType="com.rsc.app.vo.AreaQueryVo">         SELECT area.id,area.cname,area.parent_id         FROM area         <where>             <if test="parentId != null">                 area.parent_id = #{parentId}             </if>         </where>     </select>

一个非常简单的查询句子,但是这里要注意,因为是传来的int或long无法判断数据类型。否则会出现不走if查询所有数据的条件。

标签: aqv光耦继电器aqv201ax电磁继电器aqv252g3a固态继电器aqv234a固态继电器aqv210ls固态继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台