查找省市区县

  • 数据库表
    • **Area 实体类:**
    • **AreaDao文件**
    • **AreaDao.xml 层**
    • **AreaService 层**
    • **AreaServiceImpl 层**
    • **AreaController层:**

数据库表

数据库文件地址链接: https://download.csdn.net/download/qq_45740503/79746382.


Area 实体类:

package com.entity;public class Area {//城市idprivate int id;//城市名称private String areaName;//父级城市idprivate 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;}@Overridepublic 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 mapperPUBLIC "-//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">SELECTarea_nameFROM`area`WHEREid = ANY (SELECTparent_idFROM`area`WHEREid = ANY (SELECTparent_idFROM`area`WHEREarea_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 ANDparent_id = (SELECT id FROMarea WHERE area_name = #{areaName})</select><!--查找等级为3的城市 --><select id="findAreaByLevel3" resultType="com.entity.Area"parameterType="java.lang.String">SELECT*FROMareaWHERE`level` = 3AND parent_id = (SELECTidFROMareaWHERE`area_name` = #{cityName}AND parent_id = (SELECTidFROMareaWHEREarea_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 {@Autowiredprivate AreaDao areaDao;@Overridepublic List<Area> findAreaByLevel() {return areaDao.findAreaByLevel1();}@Overridepublic List<Area> findAreaByLevel(String areaName) {return areaDao.findAreaByLevel2(areaName);}@Overridepublic 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 {@Autowiredprivate 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;}}

查找省市区县--数据库查询方法相关推荐

  1. 全国省市区县数据库脚本

    由于项目需要,整理了一套全国的省市区县数据库脚本.创建表后可以成功执行语句. insert into tbl_province(codeid,parentid,name,createtime) val ...

  2. 优化SQL Server数据库查询方法

    本文详细介绍了优化SQL Server数据库查询方法. SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) ...

  3. oracle 省份三个字的,全国省市区县数据库-省份(全)

    全国省市区县数据库-省(全) /**********创建省级表**********/ CREATE TABLE T_Province ( ProID INT IDENTITY(1,1) PRIMARY ...

  4. mysql 批量查找 in_在数据库查询时解决大量in 关键字的方法

    有时候在前台界面需要批量处理一些数据时,经常要用到update table set fields=value where keyid in ('1','2',....) 但如果这个数据量如果超过100 ...

  5. python django 数据库查询方法总结

    __exact 精确等于 like 'aaa' __iexact 精确等于 忽略大小写 ilike 'aaa' __contains 包含 like '%aaa%' __icontains 包含 忽略 ...

  6. oracle 字段 查找重复,oracle数据库查询重复的索引列

    查看有哪些索引含有重复的字段, 从而让索引更加合理化!SQL> SELECT /*+ rule */ a .table_owner,a.table_name,a.index_owner,a.in ...

  7. 全国省市区县数据库-县区(全)

    /*********城市县区表*********/ CREATE TABLE T_District ( Id INT IDENTITY(1,1) PRIMARY KEY, DisName NVARCH ...

  8. shopnc框架数据库查询限制30条记录

    shopnc框架数据库查询方法:Model()->table("表名")->select();假如你的表中数据大于30条,你查到的 结果中会只显示30条,解决方法是:查 ...

  9. IP归属的4种查询方法

    题目要求:随机生成10个电话号码,在号码归属表中查询其对应归属地信息 号码归属表部分显示: 号码段 归属地省份 归属地城市 卡类型 区号 邮政编码 1300000 山东 济南市 山东联通130卡 53 ...

最新文章

  1. 移动网站性能优化(未完。。。)
  2. 【python之旅】python的基础二
  3. 滴滴出行首次进军非洲市场,网络推广外包后的滴滴想去的国家还有很多
  4. 产品必备:注册登录完整解决方案 | 含原型下载
  5. Strut2的属性驱动,模型驱动的理解
  6. NYOJ 99单词拼接(有向图的欧拉(回)路)
  7. VMware配置额外内存设置
  8. RedisView-开源跨平台的Redis可视化工具
  9. [FFmpeg] 编译官方例子
  10. flow control
  11. python爱好者社区公众号历史文章合集_微信公众号历史文章爬取api
  12. 我认知的javascript之作用域和闭包
  13. 电脑文件分区壁纸--超级马里奥、樱桃小丸子主题
  14. windows系统ping端口及利用telnet命令Ping 端口
  15. 上兴远程控制使用及分析
  16. Testin云测:深耕企业应用服务
  17. 惠普服务器关机自动重启,HP笔记本关机自动重启的解决办法
  18. 失控的滴滴:以为问题出在流程,其实问题出在人
  19. Google广告分类体系
  20. 复制url直接能跳过验证_爬虫黑科技-绕开百度人机验证

热门文章

  1. php上传照片作品,你需要知道你的作品怎么拍才好看!一张火起来的照片是好的宣传...
  2. 转:一个中专生的深圳八年漂泊实录
  3. [书]WALL·E、龙与地下铁、中国美丽的故事、故事新编、四十自述、书虫、人工智能、大话数据结构...
  4. python趣图_Python 趣味练习- 修改图片
  5. 马宁的Windows Phone 7.1初体验(二)——Push Notification
  6. Android Studio1.5使用和学习记录
  7. 深度解析杀毒软件内核(经典5章合集)
  8. 网络和多媒体知识(3)
  9. STM32 TIM PWM中阶操作:互补PWM输出
  10. C#:实现判断是否为闰年算法(附完整源码)