三级联动省市区信息实现(Mysql)

摘要

动态的从数据库加载全国省市区,后台使用的是SpringMvc,前台使用的是bootstrap页面展示。demo源码下载地址:https://git.oschina.net/zhengweishan/GetProvinceCityArea​

demo源码下载地址:https://git.oschina.net/zhengweishan/GetProvinceCityArea

首先声明一下,全国省市区三级联动有很多的插件。没有必要这么麻烦的把省市区存到数据库,然后再获取。这样缺点很明显:

缺点:使用数据库,每次动态ajax获取数据都要操作一次数据库,增加了数据库的负担。不推荐这样做,直接使用插件比较好。

一些Jquery插件比较省时省力,不用来回操作数据库,就能达到你想要的效果,页面修饰就要自己设计咯。而且使用数据库你还要事先把省市区数据存到数据库,耗费精力,及时有一些现成的sql文件可以导入。但是感觉好麻烦有没有,博主算是试了一次。

好了说了很多废话,开始上代码吧:

页面js代码:

后台接收数据的代码:

//获取所有的省份信息并传到前台
    @RequestMapping(value = "/schoolAddInput")
    public String addInput(ModelMap map) {
        map.addAttribute("provinceList", cityService.getAllProvince());
        return "school/addInput";
    }
    //    根据省份id获取城市数据后直接使用@ResponseBody装成json数据
    @RequestMapping(value = "/getCityByProvinceId/{id}")
    @ResponseBody
    public Json getCityByProvinceId(@PathVariable("id") String id){
        List cityList = cityService.getCityByProvinceId(id);
        if (cityList!=null){
            return new Json(true,"success",cityList);
        } else {
            return new Json(false,"fail",null);
        }
    }
    //    根据城市id获取区域数据后直接使用@ResponseBody装成json数据
    @RequestMapping(value = "/getAreaByCityId/{id}")
    @ResponseBody
    public Json getAreaByCityId(@PathVariable("id") String id){
        List areaList = cityService.getAreaByCityId(id);
        if (areaList!=null){
            return new Json(true,"success",areaList);
        } else {
            return new Json(false,"fail",null);
        }
    }

服务层代码


@Service
public class CityService {
    @Inject
    private CityDao cityDao;
    @Inject
    private ProvinceDao provinceDao;
    @Inject
    private AreaDao areaDao;
    public List getAllProvince() {
        return provinceDao.list();
    }
    public List getCityByProvinceId(String id) {
        return cityDao.getCityByProvinceId(id);
    }
    public List getAreaByCityId(String id) {
        return areaDao.getAreaByCityId(id);
    }
}

DAO层代码不用说你们猜也能猜到吧(*^__^*) …… 简单的查询语句。数据库持久层我使用的是mybatis框架分享其中的一个mapper文件 CityDao.xml




  
    
    
    
    
  
  

全国城市sql文件(mysql版本):(点击就可以获取地址~)

demo源码下载地址:https://git.oschina.net/zhengweishan/GetProvinceCityArea

你可能感兴趣的:(SpringMVC)