展示格式
[
{
"children": [
{
"children": [
{
"id": "6",
"address_name": "天河区"
},
{
"id": "7",
"address_name": "番禺区"
}
],
"id": "4",
"address_name": "广州"
},
{
"children": [
{
"id": "8",
"address_name": "潮阳区"
},
{
"id": "9",
"address_name": "潮南区"
}
],
"id": "5",
"address_name": "汕头"
}
],
"id": "2",
"address_name": "广东"
},
{
"children": [],
"id": "3",
"address_name": "广西"
}
]
数据库设计
代码
- Mapper.xml
<!--获取全部省份-->
<select id="getProvince" resultType="Address">
select * from tt where type = 1
</select>
<!--获取全部城市-->
<select id="getCity" resultType="Address">
select * from tt where type = 2
</select>
<!--获取全部区-->
<select id="getArea" resultType="Address">
select * from tt where type = 3
</select>
2.dao层
//获取省的信息
public List<Address> getProvince();
//获取市区信息
public List<Address> getCity();
//获取所有县区信息
public List<Address> getArea();
3.service层
//获取全部地址信息
public List<Address> getAddress();
serviceimpl
/**
* 获取全部地址
* @return
*/
@Override
public List getAddress() {
// TODO Auto-generated method stub
List<Address> province = this.userDao.getProvince();
List<Address> city = this.userDao.getCity();
List<Address> area = this.userDao.getArea();
// System.out.println("省总数:"+province.size());
// System.out.println("市总数"+city.size());
// System.out.println("区总数"+area.size());
List resultList = new ArrayList();
for (int i = 0; i < province.size(); i++) {
Map<String, Object> map1 = new HashMap<>();
String provinceId = province.get(i).getId();
map1.put("id", provinceId);
map1.put("address_name",province.get(i).getAddress_name());
List cityList = new ArrayList();
for (int j = 0; j < city.size(); j++) {
Map<String, Object> map2 = new HashMap<>();
String cityId = city.get(j).getId();
if (city.get(j).getP_id().equals(provinceId)){
map2.put("id", cityId);
map2.put("address_name",city.get(j).getAddress_name());
List areaList = new ArrayList();
for (int k = 0; k < area.size(); k++) {
Map<String, Object> map3 = new HashMap<>();
String areaId = area.get(k).getId();
if (area.get(k).getP_id().equals(cityId)){
map3.put("id", areaId);
map3.put("address_name",area.get(k).getAddress_name());
areaList.add(map3);
}
}
map2.put("children",areaList);
cityList.add(map2);
}
}
map1.put("children",cityList);
resultList.add(map1);
}
// System.out.println(resultList);
return resultList;
}
4.controller层
/**
* 获取全部地址
*/
@RequestMapping("/getAddress")
public List province() {
List<Address> province = userService.getAddress();
return province;
}