zoukankan      html  css  js  c++  java
  • 省市区三级联动

      我用循环来做的,一层套着一层,先查出省的数据,在根据省查市的数据,在根据市查区的数据:

    注意:

      在我们查数据的时候会定义一个vo层的实体里,在里面我们要定义一个跟集合类(private LIst<Asd>  ass 这里Asd是这个类的类名)这个作用就是把循环出来的数据封装到上一级里面。

      当我们查完一级要查下一级时都要调用sql方法查出数据库的数据(当我们查市时sql方法写在省封装的循环里)。

      循环的时候注意下一级的数据要循环上一级查出的数据。

       先根据pid查询出id,在把这个id作为父查询中id 的列表中id=子查询查出的id的值来查询出china表中的所有数据

     sql语句:SELECT * FROM china WHERE id in (SELECT id FROM china WHERE pid=?1(根据pid查出id)

       代码如下

    vo层的实体类;

    package com.cy.coo.vo;
    
    import java.util.List;
    
    import com.cy.coo.entity.City;
    
    public class Asd {
        private Integer id;
        private String name;
        //上一层
        private List<Asd> ass; 
    
    
        public List<Asd> getAss() {
            return ass;
        }
    
        public void setAss(List<Asd> ass) {
            this.ass = ass;
        }
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }

    实现代码:

    package com.cy.coo.Controller;
    
    import java.util.ArrayList;
    
    import java.util.List;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.cy.coo.Repository.CityRepository;
    import com.cy.coo.entity.City;
    import com.cy.coo.vo.Asd;
    
    import com.cy.coo.vo.Coding;
    
    @RestController
    public class CityController {
        @Autowired
        private CityRepository cityRepository;
    
        @PostMapping("/city")
        public List<Asd> get(@RequestBody Coding aa) {
            // 这里pd可以随便定义啥子
            // Integer pd = null;
            // pd = aa.getPid();
            // List<S> s=new ArrayList<>();
            // ss(lc, asd);
             //返回ss方法 ()里的是 Coding传过来的值
            return ss(aa.getPid());
    
        }
          //Integer pid Coding 传递过来的数据随便起的一个名字让它得到传过来的值
        private List<Asd> ss(Integer pid) {
            // 查出省的数据
            List<City> lc = cityRepository.findName(pid);
            // 定义的一个集合
            List<Asd> asd = new ArrayList<>();
            // TODO Auto-generatefor(City city : lc){
            for (City city : lc) {
                // 封装的省的数据
                Asd as = new Asd();
                as.setName(city.getName());
                as.setId(city.getId());
                // 这是查出的每一个省下面的每一个市(List<City>这个是Asd中所定义的省所套的下一层)
                List<City> findName = cityRepository.findName(city.getId());
                // 这是新建的一个集合
                List<Asd> list = new ArrayList<>();
                for (City c : findName) {
                    // 封装的一个市的数据(循环开始会是每一个的)
                    Asd as2 = new Asd();
                    as2.setId(c.getId());
                    as2.setName(c.getName());
                    // 因为有很多的数据所以要放进集合里面
                    list.add(as2);
                    List<City> findName2 = cityRepository.findName(c.getId());
                    List<Asd> list2 = new ArrayList<>();
                    
                    for(City distinguish : findName2){
                        //封装的区的数据
                        Asd as3 =new Asd();
                        as3.setId(distinguish.getId());
                        as3.setName(distinguish.getName());
                        list2.add(as3);
                    }
                    //把得到的集合封装到上一层里
                    as2.setAss(list2);
                }
                as.setAss(list);
                asd.add(as);
            }
            return asd;
        }
    }
  • 相关阅读:
    bzoj_auto_submiter(辣鸡Py毁我青春系列)
    听说“辣鸡小隔膜”出V1.3了?
    shell脚本:统计分析 /home/ 目录用户磁盘使用情况
    shell脚本:DNS自检脚本
    Linux命令集锦:ssh命令
    Linux用户权限
    Linux文件属性
    Linux命令集锦:chown命令
    Linux命令集锦:chmod命令
    Linux命令集锦:tmux命令
  • 原文地址:https://www.cnblogs.com/lihaiyang123/p/7647966.html
Copyright © 2011-2022 走看看