查找省市区县--数据库查询方法

数据库表

数据库文件地址链接: https://download.csdn.net/download/qq_45740503/79746382.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Area 实体类:

package com.entity;

public class Area {
	//城市id
	private int id;
	//城市名称
	private String areaName;
	//父级城市id
	private int parentId;
	//城市等级
	private int level;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getAreaName() {
		return areaName;
	}
	public void setAreaName(String areaName) {
		this.areaName = areaName;
	}
	public int getParentId() {
		return parentId;
	}
	public void setParentId(int parentId) {
		this.parentId = parentId;
	}
	public int getLevel() {
		return level;
	}
	public void setLevel(int level) {
		this.level = level;
	}
	@Override
	public String toString() {
		return "Area [id=" + id + ", areaName=" + areaName + ", parentId=" + parentId + ", level=" + level + "]";
	}
}

AreaDao文件

package com.dao;

import java.util.List;
import org.apache.ibatis.annotations.Param;

import com.entity.Area;

public interface AreaDao {
	// 根据地区id查询
	public Area findAreaById(int id);

	// 根据地区名称查找城市信息
	public List<Area> findAreaByName(String areaName);

	// 查找等级为1的城市
	public List<Area> findAreaByLevel1();

	// 查找等级为2的城市
	public List<Area> findAreaByLevel2(String areaName);

	// 查找等级为3的城市
	public List<Area> findAreaByLevel3(@Param("areaName") String areaName, @Param("cityName") String cityName);

	// 根据区县姓名查找父级1级城市
	public List<Area> findAreaFatherByName(String areaName);
}

AreaDao.xml 层

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dao.AreaDao">
	<!-- 通过ID地区信息 -->
	<select id="findAreaById" resultType="com.entity.Area" parameterType="int">
		SELECT * FROM `area`
		WHERE id = #{id}
	</select>
	<!-- 根据地区名称查找城市信息 -->
	<select id="findAreaByName" resultType="com.entity.Area" parameterType="java.lang.String">
		SELECT * FROM `area`
		WHERE area_name = #{areaName}
	</select>
	<!-- 根据区县姓名查找父级1级城市 -->
	<select id="findAreaFatherByName" resultType="com.entity.Area" parameterType="java.lang.String">
		SELECT area_name
		FROM `area`
		WHERE id = ANY 
			(SELECT parent_id FROM `area` WHERE id = ANY 
				(SELECT parent_id FROM `area` WHERE area_name = #{areaName}
			)
		);
	</select>

	<!--查找等级为1的城市 -->
	<select id="findAreaByLevel1" resultType="com.entity.Area" parameterType="java.lang.String">
		SELECT * FROM `area`
		WHERE level = 1
	</select>

	<!--查找等级为2的城市 -->
	<select id="findAreaByLevel2" resultType="com.entity.Area" parameterType="java.lang.String">
		SELECT * FROM area
		WHERE 
			`level` = 2 AND 
			parent_id = (SELECT id FROM area WHERE area_name = #{areaName})
	</select>


	<!--查找等级为3的城市 -->
	<select id="findAreaByLevel3" resultType="com.entity.Area"
		parameterType="java.lang.String">
		SELECT *
		FROM area
		WHERE `level` = 3
			AND parent_id = (
				SELECT id FROM area 
					WHERE `area_name` = #{cityName}
					AND parent_id = (SELECT id FROM area WHERE area_name = #{areaName})
			)
	</select>

</mapper>

AreaService 层

package com.service;

import java.util.List;

import com.entity.Area;

public interface AreaService {
	// 根据等级1查询城市名称
	public List<Area> findAreaByLevel();

	// 根据等级2查询城市名称
	public List<Area> findAreaByLevel(String areaName);

	// 根据等级3查询城市名称
	public List<Area> findAreaByLevel(String areaName, String cityName);

}

AreaServiceImpl 层

package com.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.dao.AreaDao;
import com.entity.Area;
import com.service.AreaService;
@Service
public class AreaServiceImpl implements AreaService {
	@Autowired
	private AreaDao areaDao;
	@Override
	public List<Area> findAreaByLevel() {
		return areaDao.findAreaByLevel1();
	}

	@Override
	public List<Area> findAreaByLevel(String areaName) {
		return areaDao.findAreaByLevel2(areaName);
	}

	@Override
	public List<Area> findAreaByLevel(String areaName, String cityName) {
		return areaDao.findAreaByLevel3(areaName, cityName);
	}

}

AreaController层:

package com.web;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.entity.Area;
import com.service.AreaService;

@Controller
public class AreaController {
	@Autowired
	private AreaService areaAervice;
	/**
	 * 查询2级城市
	 * 
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value = "/findAreaByLevel2", method = RequestMethod.POST)
	public Map<String, Object> findAreaByLevel2(String areaName) {
		List<Area> area = areaAervice.findAreaByLevel(areaName);
		System.out.println(area);
		Map<String, Object> rtnMap = new HashMap<String, Object>();
		rtnMap.put("area", area);
		return rtnMap;
	}
	
	/**
	 * 查询3级城市
	 * 
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value = "/findAreaByLevel3", method = RequestMethod.POST)
	public Map<String, Object> findAreaByLevel3(String areaName,String cityName) {
		List<Area> district = areaAervice.findAreaByLevel(areaName,cityName);
		System.out.println(district);
		Map<String, Object> rtnMap = new HashMap<String, Object>();
		rtnMap.put("district", district);
		return rtnMap;
	}

}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

良辰美景好时光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值