省,市,区/县三级联查

一,数据库建表,省,市,区/县等级由高到低,定义按个百位十位数字设定。

二,设置最高等级“省”的编号为主键,这里使用ID,不同的省只有一个所以设为主键不会冲突,再设置一个管理下一个层级的PARENTID开头使用0来设置,例如北京的ID设为1,PARENTID为0,山东的ID设为2PARENTID为0。

三,设置市为第二层级关系,因为主键无法重复,上面定义了表示第二层级的PARENTID为0,例属于北京的海淀区ID为101,PARENTID为1     朝阳区的ID为102,PARENTID为2,  济南ID201,PARENTID1,青岛ID202,PARENTID2。第二层级的级别都要相同。

四,设置第三层级关系例如天桥区ID20101,PARENTID201,例如前面的201与后面201对应应。

这样就是实现联查,我选择省的时候,市与区县市固定而不是全部。

下面是一个例子,第一列为主键

下面是实现三级联动的代码

DAO层

package com.hanqi.dao;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

import com.hanqi.entity.Region;

public class RegionDAO {

    Configuration cfg=null;
    ServiceRegistry sr=null;
    SessionFactory sf=null;
    Session se=null;
    Transaction tr=null;
    public RegionDAO(){

    //加载配置文件
     cfg=new Configuration().configure();

    //注册服务
     sr=new StandardServiceRegistryBuilder()
            .applySettings(cfg.getProperties()).build();
    }
    //初始化
    private void init()
    {
        sf=cfg.buildSessionFactory(sr);
        se=sf.openSession();
        tr=se.beginTransaction();
    }
    //提交和释放资源
    private void destory()
    {
        tr.commit();
        se.close();
        sf.close();
    }

    //获取数据列表
    public List<Region> getList(String parentid)
    {
        List<Region> rtn=new ArrayList<>();

        init();

        //查询数据
        rtn=se.createQuery("from Region where parentRegionID = ?")
                .setString(0, parentid).list();

        destory();

        return rtn;
    }

}

Service层代码

package com.hanqi.Service;

import java.util.List;

import com.hanqi.dao.RegionDAO;
import com.hanqi.entity.Region;

public class RegionService {

    //获取
    public List<Region> getList(String parentid){
        return new RegionDAO().getList(parentid);
    }

}

entity层

ackage com.hanqi.entity;
//地区实体类
public class Region {

    //地区id
    private String regionID;
    //地区名称
    private String regionName;
    //上级地区id
    private String parentRegionID;
    public String getRegionID() {
        return regionID;
    }
    public void setRegionID(String regionID) {
        this.regionID = regionID;
    }
    public String getRegionName() {
        return regionName;
    }
    public void setRegionName(String regionName) {
        this.regionName = regionName;
    }
    public String getParentRegionID() {
        return parentRegionID;
    }
    public void setParentRegionID(String parentRegionID) {
        this.parentRegionID = parentRegionID;
    }

}

Servlet层

package com.hanqi.Servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSONArray;
import com.hanqi.Service.RegionService;
import com.hanqi.entity.Region;

public class RegionServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public RegionServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html");

        //接收参数
        String parentid=request.getParameter("parentid");
        if(parentid!=null)
        {
        //读取地区列表
        List<Region> lr=new RegionService().getList(parentid);

        //返回JSON格式的数据
        String json=JSONArray.toJSONString(lr);

        response.getWriter().print(json);
        }
        else
        {
            response.getWriter().print("[]");
        }
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

WebContent层

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改</title>

<!-- 1jQuery的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.min.js"></script>
<!-- 2css资源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/default/easyui.css">
<!-- 3图标资源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/icon.css">
<!-- 4easyui的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.easyui.min.js"></script>
  <!-- 5本地语言包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/locale/easyui-lang-zh_CN.js"></script>

</head>
<body>
修改页面

<input id="cc2" class="easyui-combobox"
data-options="valueField:‘id‘,textField:‘text‘,
url:‘json/combo.json‘" />  

<br><br>

省:<input id="sheng" class="easyui-combobox" style="width:100px"
data-options="
url:‘RegionServlet?parentid=0‘,
valueField:‘regionID‘,
textField:‘regionName‘,
onSelect:function(region){

$(‘#shi‘).combobox(‘clear‘);
$(‘#shi‘).combobox(‘reload‘,‘RegionServlet?parentid=‘+region.regionID);

//清理原有项
$(‘#qu‘).combobox(‘clear‘);
//清理下拉项
$(‘#qu‘).combobox(‘reload‘,‘RegionServlet‘);
}
"/>

<br><br>
市:<input id="shi" class="easyui-combobox" style="width:100px"
data-options="
url:‘RegionServlet‘,
valueField:‘regionID‘,
textField:‘regionName‘,
onSelect:function(region){

$(‘#qu‘).combobox(‘clear‘);
$(‘#qu‘).combobox(‘reload‘,‘RegionServlet?parentid=‘+region.regionID);

}
"/>

<br><br>
区县:<input id="qu" class="easyui-combobox" style="width:100px"
data-options="
url:‘RegionServlet‘,
valueField:‘regionID‘,
textField:‘regionName‘,

"/>

</body>
</html>

效果截图,可以实现

时间: 2024-11-09 22:10:47

省,市,区/县三级联查的相关文章

ajax(省,市,县)三级联动

下面我们用Jquery,ajax,做一个省,市,县的三级联动: 下面是我做三级联动下拉的步骤以及逻辑 第一步:先做一个省市区表格 第二步:建个PHP页面显示用我是在<body>里放<div>用来接收要显示的省市区表格信息,里面嵌入jquery-1.11.2.min.js和自己封装的三联动省市区的方法 第三步:写封装方法用JS 第四步:做个纯php处理页面,这个页面处理传过来的任何代号 首先我们要建立数据库: 这就是包含省,市,县的数据库, 下面我们就写主页面:sanji.php:

显示省、市、县三级联动的选择

本文主要是实现:用户交互,显示省市县三级联动的选择 代码: #!/usr/bin/env python# -*- coding:utf-8 -*-# author by lh dic = { '河北': { '石家庄': ['鹿泉', '藁城', '元氏'], '邯郸': ['永年', '涉县', '磁县'], }, '河南': { '郑州':['中原区','二七区','金水区'], '开封':['龙亭区','鼓楼区','禹王台区'] }, '山西': { '太原':['迎泽区','杏花岭区',

(我国的省—市—区)三级联动数据库.sql

# MySQL-Front 5.1  (Build 2.7) /*!40101 SET @[email protected]@SQL_MODE */; /*!40101 SET SQL_MODE='' */; /*!40111 SET @[email protected]@SQL_NOTES */; /*!40103 SET SQL_NOTES='ON' */; # Host: localhost    Database: iptohat_area # ---------------------

JQUERY省、市、县城市联动选择

JQUERY 插件开发——CITYLINKAGE(省.市.县城市联动选择) 第一部分:背景   开发源于需求,本次城市联动选择插件算是我写插件的一个特例吧,不是我目前工作需要些的,算是兴趣驱使吧.之前呢,一直想写这个插件,然后错过了一个写这个插件的机会(这个得回顾到很久以前了...此处省去N个字).然后最近“瘾”又犯了,呵呵,随手就拿这个“欠”了很久的插件开刀了.大家都应该知道“某宝”的这个插件写的还是很强大的,支持到街道(镇)级别...可见他们维护的前端数据有多大...不过呢,临渊羡鱼,不如退

html实现 省——市——区三级联动

html实现  省--市--区三级联动 html中实现三级联动是一个不错的demo,博主在这里跟大家分享一下实现的过程,以及自己在过程中出现的一些问题,仅供参考. 首先我们将全国的省市区数据导入进来,这里已经直接整理搜集好了.如下: var provinceList = [ {name:'北京', cityList:[ {name:'市辖区', areaList:['东城区','西城区','崇文区','宣武区','朝阳区','丰台区','石景山区','海淀区','门头沟区','房山区','通州区

封装标签省,市,县。三级联动

package com.jy.modules.tld; import com.jy.platform.api.sysarea.SysAreaAPI; import java.io.IOException; import java.util.List; import java.util.Map; import javax.servlet.ServletContext; import javax.servlet.jsp.JspException; import javax.servlet.jsp.J

WinForm Timer控件,三级联动[省,市,区]

Timer控件: 组件中的最后一个控件,功能是可以根据用户自定义的时间间隔来触发时间,不会印象窗体本身的其他事件进行. 属性: Enable  设置控件是否启用 Interval  设置事件的频率,以毫秒为单位 事件只有一个:Tick事件 例:使用timer控件获取当前时间并即时变动 private void timer1_Tick(object sender, EventArgs e) { label1.Text = DateTime.Now.ToString("yyyy年MM月dd日hh时m

省市县(区)三级联动

1:首先是JS文件:area.ui.js (function($){     function Dsy(){         this.Items = {};     }     Dsy.prototype.add = function(id,iArray){         this.Items[id] = iArray;     }     Dsy.prototype.Exists = function(id){         if(typeof(this.Items[id]) == "u

中国行政区域(省,市,县)SQL

数据库:Region CREATE DATABASE [Region] 表:Province CREATE TABLE [dbo].[Province](     [Id] [int] NOT NULL,     [ProvinceId] [nvarchar](6) NOT NULL,     [ProvinceName] [nvarchar](200) NOT NULL,     PRIMARY KEY([Id]) ) 表:City CREATE TABLE [dbo].[City](