2017最新版省市区三级联动下拉框+所有源代码以及数据库 - Go语言中文社区

2017最新版省市区三级联动下拉框+所有源代码以及数据库


  • 2017年下半年国家统计局最新数据,JSP+Servlet+Dao实现省市区三级联动下拉框的效果

DropdownDAO.java —–Dao层

package com.imooc.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;   
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;   
import java.util.Map;

import DataBaseHelp.DBHelp;

public class DropdownDAO {      

    //获得省
        @SuppressWarnings("rawtypes")
        public static  ArrayList<Map> getprovince() throws SQLException {   
            Map<String, String> map = new HashMap<String, String>();   
            ArrayList<Map> rsList = new ArrayList<Map>();
            Connection conn = null;   
            Statement stmt = null;   
            ResultSet rs = null;
            String sql = "select * from province;" ;   
            try {   
                conn = DBHelp.getConnection();   
                stmt = conn.createStatement();   
                rs = stmt.executeQuery(sql);   
                while (rs.next()) {   
                    map = new HashMap<String, String>();  
                    map.put("code", rs.getString("code_p"));
                    map.put("name",rs.getString("name"));
                    rsList.add(map);
                }   
                return rsList;   
            } catch (Exception e) {   
                System.out.println("----获得省的方法出现异常:" + e);   
                e.printStackTrace();   
                return null;   
            } finally {   
            }   
        }   


        //根据省编号获得市
        @SuppressWarnings("rawtypes")
        public static ArrayList<Map> getcity(String code_p) throws SQLException {   
            Map<String, String> map = new HashMap<String, String>();   
            ArrayList<Map> rsList = new ArrayList<Map>();
            Connection conn = null;   
            Statement stmt = null;   
            ResultSet rs = null;
            String sql = "select * from city where code_p="+code_p+";" ;   
            try {   
                conn = DBHelp.getConnection();   
                stmt = conn.createStatement();   
                rs = stmt.executeQuery(sql);   
                while (rs.next()) {   
                    map = new HashMap<String, String>();  
                    map.put("code", rs.getString("code_c"));
                    map.put("name",rs.getString("name"));
                    rsList.add(map);
                }   
                return rsList;
            } catch (Exception e) {   
                System.out.println("----获得市的方法出现异常:" + e);   
                e.printStackTrace();   
                return null;   
            } finally {   
            }   
        }   

        //根据市编号获得区
        @SuppressWarnings("rawtypes")
        public static ArrayList<Map> getarea(String code_c) throws SQLException {   
            Map<String, String> map = new HashMap<String, String>();   
            ArrayList<Map> rsList = new ArrayList<Map>();
            Connection conn = null;   
            Statement stmt = null;   
            ResultSet rs = null;
            String sql = "select * from area where code_c="+code_c+";" ;   
            try {   
                conn = DBHelp.getConnection();   
                stmt = conn.createStatement();   
                rs = stmt.executeQuery(sql);   
                while (rs.next()) {   
                    map = new HashMap<String, String>();  
                    map.put("code", rs.getString("code_a"));
                    map.put("name",rs.getString("name"));
                    rsList.add(map);
                }   
                return rsList;   
            } catch (Exception e) {   
                System.out.println("----获得区的方法出现异常:" + e);   
                e.printStackTrace();   
                return null;   
            } finally {   
            }   
        }   
}

DBHelp.java—-数据库连接层

package DataBaseHelp;
import java.sql.Connection;
import java.sql.DriverManager;
public class DBHelp {

        private static final String driver = "com.mysql.jdbc.Driver"; //数据库驱动
        //连接数据库的URL地址
        private static final String url="jdbc:mysql://localhost:3306/region?useUnicode=true&characterEncoding=UTF-8"; 
        private static final String username="root";//数据库的用户名
        private static final String password="LYY1996*";//数据库的密码

        private static Connection conn=null;

        //静态代码块负责加载驱动
        static 
        {
            try
            {
                Class.forName(driver);
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
        }

        //单例模式返回数据库连接对象
        public static Connection getConnection() throws Exception
        {
            if(conn==null)
            {
                conn = DriverManager.getConnection(url, username, password);
                return conn;
            }
            return conn;
        }

        public static void main(String[] args) {

            try
            {
               Connection conn = DBHelp.getConnection();
               if(conn!=null)
               {
                   System.out.println("数据库连接正常!");
               }
               else
               {
                   System.out.println("数据库连接异常!");
               }
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }

        }
    }


Dropdown.java——-Servlet层

package DropdownServlet;

    import java.io.IOException;
    import java.sql.SQLException;
    import java.util.ArrayList;

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

    import com.google.gson.Gson;
    import  com.imooc.dao.DropdownDAO;

    public class Dropdown extends HttpServlet{

        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        public void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException,ServletException{
            doPost(request,response);
        }

        public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException{
            String code = request.getParameter("code");
            String grade = request.getParameter("grade");
            System.out.println("grade="+grade);
            System.out.println("code="+code);
            String json = "";
            ArrayList<?> rsList = new ArrayList<Object>();
            Gson gson = new Gson();
            try {
                if(grade.equals("province"))
                    rsList=DropdownDAO.getprovince();
                else if(grade.equals("city"))
                    rsList=DropdownDAO.getcity(code);
                else if(grade.equals("area"))
                    rsList=DropdownDAO.getarea(code);
                json = gson.toJson(rsList);
                System.out.println("json="+json);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            response.setCharacterEncoding("UTF-8");//防止出现中文乱码现象
            response.getWriter().print(json);
        }
    }


为Servlet配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  <servlet>
      <servlet-name>Dropdown</servlet-name>
      <servlet-class>DropdownServlet.Dropdown</servlet-class>
  </servlet>

  <servlet-mapping>
      <servlet-name>Dropdown</servlet-name>
      <url-pattern>/DropdownServlet/Dropdown</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

index.jsp —–JSP页面、视图层

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="<%=basePath%>">
    <title>省市区三级联动下拉框 |Three - Three Linkage Drop-Down Box </title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <script type="text/javascript" src="<%=path %>/js/jquery/jquery-1.7.min.js"></script>
    <script type="text/javascript" src="<%=path %>/js/json/json-minified.js"></script>
</head>

<body>
    <select name="province" id="province" onchange="onSelectChange(this,'city');" style="width:100px" ></select>
    <select name="city" id="city" onchange="onSelectChange(this,'area');" style="width:100px" ></select>
    <select name="area" id="area" style="width:100px"></select>  
</body>

<script type="text/javascript">

function onSelectChange(obj,toSelId){
    //alert(obj.value);
    setSelect(obj.value,toSelId);
}

function setSelect(fromSelVal,toSelId){
    //alert(fromSelVal);
    //alert(toSelId);
    document.getElementById(toSelId).innerHTML="";
    jQuery.ajax({
      url: "<%=path%>/DropdownServlet/Dropdown",
      cache: false,
      data:{"code":fromSelVal,"grade":toSelId},  
      success: function(data){
        createSelectObj(data,toSelId);
      }
    });
}

function createSelectObj(data,toSelId){
    var arr = jsonParse(data);
    if(arr != null && arr.length>0){
        var obj = document.getElementById(toSelId);
        obj.innerHTML="";
        var nullOp = document.createElement("option");
        nullOp.setAttribute("value","");
        obj.appendChild(nullOp);
        for(var o in arr){
            var op = document.createElement("option");
            op.setAttribute("value",arr[o].code);
            //op.text=arr[o].name;//这一句在ie下不起作用,用下面这一句或者innerHTML
            op.appendChild(document.createTextNode(arr[o].name));
            obj.appendChild(op);
        }

    }
}

setSelect('110000','province');
</script>

</html>

  • 想要项目正常运行需要导入三个jar包:
    1、gson-2.0.jar
    2、mysql-connector-java-5.0.8-bin.jar
    3、servlet-api.jar
  • 此外需要将数据库导入自己的MYSQL,并在DBHelp.java里将数据库连接端口、用户名、密码改为自己数据库的

  • 最后,数据库脚本region.sql如下:共包含三个表,一个province,一个city,一个area,分别保存省市区的数据
/*
Navicat MySQL Data Transfer

Source Server         : localhost_3306
Source Server Version : 50720
Source Host           : localhost:3306
Source Database       : region

Target Server Type    : MYSQL
Target Server Version : 50720
File Encoding         : 65001

Date: 2017-11-30 23:03:33
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for area
-- ----------------------------
DROP TABLE IF EXISTS `area`;
CREATE TABLE `area` (
  `id` varchar(15) NOT NULL,
  `code_a` varchar(15) NOT NULL,
  `name` varchar(20) NOT NULL,
  `code_c` varchar(15) DEFAULT NULL,
  PRIMARY KEY (`code_a`),
  KEY `FK_Reference_9` (`code_c`),
  CONSTRAINT `FK_Reference_9` FOREIGN KEY (`code_c`) REFERENCES `city` (`code_c`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='该实体为行政区域划分等级';

-- ----------------------------
-- Records of area
-- ----------------------------
INSERT INTO `area` VALUES ('1', '110101', '东城区', '110100');
INSERT INTO `area` VALUES ('2', '110102', '西城区', '110100');
INSERT INTO `area` VALUES ('3', '110105', '朝阳区', '110100');
INSERT INTO `area` VALUES ('4', '110106', '丰台区', '110100');
INSERT INTO `area` VALUES ('5', '110107', '石景山区', '110100');
INSERT INTO `area` VALUES ('6', '110108', '海淀区', '110100');
INSERT INTO `area` VALUES ('7', '110109', '门头沟区', '110100');
INSERT INTO `area` VALUES ('8', '110111', '房山区', '110100');
INSERT INTO `area` VALUES ('9', '110112', '通州区', '110100');
INSERT INTO `area` VALUES ('10', '110113', '顺义区', '110100');
INSERT INTO `area` VALUES ('11', '110114', '昌平区', '110100');
INSERT INTO `area` VALUES ('12', '110115', '大兴区', '110100');
INSERT INTO `area` VALUES ('13', '110116', '怀柔区', '110100');
INSERT INTO `area` VALUES ('14', '110117', '平谷区', '110100');
INSERT INTO `area` VALUES ('15', '110118', '密云区', '110100');
INSERT INTO `area` VALUES ('16', '110119', '延庆区', '110100');
INSERT INTO `area` VALUES ('17', '120101', '和平区', '120100');
INSERT INTO `area` VALUES ('18', '120102', '河东区', '120100');
INSERT INTO `area` VALUES ('19', '120103', '河西区', '120100');
INSERT INTO `area` VALUES ('20', '120104', '南开区', '120100');
INSERT INTO `area` VALUES ('21', '120105', '河北区', '120100');
INSERT INTO `area` VALUES ('22', '120106', '红桥区', '120100');
INSERT INTO `area` VALUES ('23', '120110', '东丽区', '120100');
INSERT INTO `area` VALUES ('24', '120111', '西青区', '120100');
INSERT INTO `area` VALUES ('25', '120112', '津南区', '120100');
INSERT INTO `area` VALUES ('26', '120113', '北辰区', '120100');
INSERT INTO `area` VALUES ('27', '120114', '武清区', '120100');
INSERT INTO `area` VALUES ('28', '120115', '宝坻区', '120100');
INSERT INTO `area` VALUES ('29', '120116', '滨海新区', '120100');
INSERT INTO `area` VALUES ('30', '120117', '宁河区', '120100');
INSERT INTO `area` VALUES ('31', '120118', '静海区', '120100');
INSERT INTO `area` VALUES ('32', '120119', '蓟州区', '120100');
INSERT INTO `area` VALUES ('33', '130101', '市辖区', '130100');
INSERT INTO `area` VALUES ('34', '130102', '长安区', '130100');
INSERT INTO `area` VALUES ('35', '130104', '桥西区', '130100');
INSERT INTO `area` VALUES ('36', '130105', '新华区', '130100');
INSERT INTO `area` VALUES ('37', '130107', '井陉矿区', '130100');
INSERT INTO `area` VALUES ('38', '130108', '裕华区', '130100');
INSERT INTO `area` VALUES ('39', '130109', '藁城区', '130100');
INSERT INTO `area` VALUES ('40', '130110', '鹿泉区', '130100');
INSERT INTO `area` VALUES ('41', '130111', '栾城区', '130100');
INSERT INTO `area` VALUES ('42', '130121', '井陉县', '130100');
INSERT INTO `area` VALUES ('43', '130123', '正定县', '130100');
INSERT INTO `area` VALUES ('44', '130125', '行唐县', '130100');
INSERT INTO `area` VALUES ('45', '130126', '灵寿县', '130100');
INSERT INTO `area` VALUES ('46', '130127', '高邑县', '130100');
INSERT INTO `area` VALUES ('47', '130128', '深泽县', '130100');
INSERT INTO `area` VALUES ('48', '130129', '赞皇县', '130100');
INSERT INTO `area` VALUES ('49', '130130', '无极县', '130100');
INSERT INTO `area` VALUES ('50', '130131', '平山县', '130100');
INSERT INTO `area` VALUES ('51', '130132', '元氏县', '130100');
INSERT INTO `area` VALUES ('52', '130133', '赵县', '130100');
INSERT INTO `area` VALUES ('53', '130183', '晋州市', '130100');
INSERT INTO `area` VALUES ('54', '130184', '新乐市', '130100');
INSERT INTO `area` VALUES ('55', '130201', '市辖区', '130200');
INSERT INTO `area` VALUES ('56', '130202', '路南区', '130200');
INSERT INTO `area` VALUES ('57', '130203', '路北区', '130200');
INSERT INTO `area` VALUES ('58', '130204', '古冶区', '130200');
INSERT INTO `area` VALUES ('59', '130205', '开平区', '130200');
INSERT INTO `area` VALUES ('60', '130207', '丰南区', '130200');
INSERT INTO `area` VALUES ('61', '130208', '丰润区', '130200');
INSERT INTO `area` VALUES ('62', '130209', '曹妃甸区', '130200');
INSERT INTO `area` VALUES ('63', '130223', '滦县', '130200');
INSERT INTO `area` VALUES ('64', '130224', '滦南县', '130200');
INSERT INTO `area` VALUES ('65', '130225', '乐亭县', '130200');
INSERT INTO `area` VALUES ('66', '130227', '迁西县', '130200');
INSERT INTO `area` VALUES ('67', '130229', '玉田县', '130200');
INSERT INTO `area` VALUES ('68', '130281', '遵化市', '130200');
INSERT INTO `area` VALUES ('69', '130283', '迁安市', '130200');
INSERT INTO `area` VALUES ('70', '130301', '市辖区', '130300');
INSERT INTO `area` VALUES ('71', '130302', '海港区', '130300');
INSERT INTO `area` VALUES ('72', '130303', '山海关区', '130300');
INSERT INTO `area` VALUES ('73', '130304', '北戴河区', '130300');
INSERT INTO `area` VALUES ('74', '130306', '抚宁区', '130300');
INSERT INTO `area` VALUES ('75', '130321', '青龙满族自治县', '130300');
INSERT INTO `area` VALUES ('76', '130322', '昌黎县', '130300');
INSERT INTO `area` VALUES ('77', '130324', '卢龙县', '130300');
INSERT INTO `area` VALUES ('78', '130401', '市辖区', '130400');
INSERT INTO `area` VALUES ('79', '130402', '邯山区', '130400');
INSERT INTO `area` VALUES ('80', '130403', '丛台区', '130400');
INSERT INTO `area` VALUES ('81', '130404', '复兴区', '130400');
INSERT INTO `area` VALUES ('82', '130406', '峰峰矿区', '130400');
INSERT INTO `area` VALUES ('83', '130421', '邯郸县', '130400');
INSERT INTO `area` VALUES ('84', '130423', '临漳县', '130400');
INSERT INTO `area` VALUES ('85', '130424', '成安县', '130400');
INSERT INTO `area` VALUES ('86', '130425', '大名县', '130400');
INSERT INTO `area` VALUES ('87', '130426', '涉县', '130400');
INSERT INTO `area` VALUES ('88', '130427', '磁县', '130400');
INSERT INTO `area` VALUES ('89', '130428', '肥乡县', '130400');
INSERT INTO `area` VALUES ('90', '130429', '永年县', '130400');
INSERT INTO `area` VALUES ('91', '130430', '邱县', '130400');
INSERT INTO `area` VALUES ('92', '130431', '鸡泽县', '130400');
INSERT INTO `area` VALUES ('93', '130432', '广平县', '130400');
INSERT INTO `area` VALUES ('94', '130433', '馆陶县', '130400');
INSERT INTO `area` VALUES ('95', '130434', '魏县', '130400');
INSERT INTO `area` VALUES ('96', '130435', '曲周县', '130400');
INSERT INTO `area` VALUES ('97', '130481', '武安市', '130400');
INSERT INTO `area` VALUES ('98', '130501', '市辖区', '130500');
INSERT INTO `area` VALUES ('99', '130502', '桥东区', '130500');
INSERT INTO `area` VALUES ('100', '130503', '桥西区', '130500');
INSERT INTO `area` VALUES ('101', '130521', '邢台县', '130500');
INSERT INTO `area` VALUES ('102', '130522', '临城县', '130500');
INSERT INTO `area` VALUES ('103', '130523', '内丘县', '130500');
INSERT INTO `area` VALUES ('104', '130524', '柏乡县', '130500');
INSERT INTO `area` VALUES ('105', '130525', '隆尧县', '130500');
INSERT INTO `area` VALUES ('106', '130526', '任县', '130500');
INSERT INTO `area` VALUES ('107', '130527', '南和县', '130500');
INSERT INTO `area` VALUES ('108', '130528', '宁晋县', '130500');
INSERT INTO `area` VALUES ('109', '130529', '巨鹿县', '130500');
INSERT INTO `area` VALUES ('110', '130530', '新河县', '130500');
INSERT INTO `area` VALUES ('111', '130531', '广宗县', '130500');
INSERT INTO `area` VALUES ('112', '130532', '平乡县', '130500');
INSERT INTO `area` VALUES ('113', '130533', '威县', '130500');
INSERT INTO `area` VALUES ('114', '130534', '清河县', '130500');
INSERT INTO `area` VALUES ('115', '130535', '临西县', '130500');
INSERT INTO `area` VALUES ('116', '130581', '南宫市', '130500');
INSERT INTO `area` VALUES ('117', '130582', '沙河市', '130500');
INSERT INTO `area` VALUES ('118', '130601', '市辖区', '130600');
INSERT INTO `area` VALUES ('119', '130602', '竞秀区', '130600');
INSERT INTO `area` VALUES ('120', '130606', '莲池区', '130600');
INSERT INTO `area` VALUES ('121', '130607', '满城区', '130600');
INSERT INTO `area` VALUES ('122', '130608', '清苑区', '130600');
INSERT INTO `area` VALUES ('123', '130609', '徐水区', '130600');
INSERT INTO `area` VALUES ('124', '130623', '涞水县', '130600');
INSERT INTO `area` VALUES ('125', '130624', '阜平县', '130600');
INSERT INTO `area` VALUES ('126', '130626', '定兴县', '130600');
INSERT INTO `area` VALUES ('127', '130627', '唐县', '130600');
INSERT INTO `area` VALUES ('128', '130628', '高阳县', '130600');
INSERT INTO `area` VALUES ('129', '130629', '容城县', '130600');
INSERT INTO `area` VALUES ('130', '130630', '涞源县', '130600');
INSERT INTO `area` VALUES ('131', '130631', '望都县', '130600');
INSERT INTO `area` VALUES ('132', '130632', '安新县', '130600');
INSERT INTO `area` VALUES ('133', '130633', '易县', '130600');
INSERT INTO `area` VALUES ('134', '130634', '曲阳县', '130600');
INSERT INTO `area` VALUES ('135', '130635', '蠡县', '130600');
INSERT INTO `area` VALUES ('136', '130636', '顺平县', '130600');
INSERT INTO `area` VALUES ('137', '130637', '博野县', '130600');
INSERT INTO `area` VALUES ('138', '130638', '雄县', '130600');
INSERT INTO `area` VALUES ('139', '130681', '涿州市', '130600');
INSERT INTO `area` VALUES ('140', '130683', '安国市', '130600');
INSERT INTO `area` VALUES ('141', '130684', '高碑店市', '130600');
INSERT INTO `area` VALUES ('142', '130701', '市辖区', '130700');
INSERT INTO `area` VALUES ('143', '130702', '桥东区', '130700');
INSERT INTO `area` VALUES ('144', '130703', '桥西区', '130700');
INSERT INTO `area` VALUES ('145', '130705', '宣化区', '130700');
INSERT INTO `area` VALUES ('146', '130706', '下花园区', '130700');
INSERT INTO `area` VALUES ('147', '130708', '万全区', '130700');
INSERT INTO `area` VALUES ('148', '130709', '崇礼区', '130700');
INSERT INTO `area` VALUES ('149', '130722', '张北县', '130700');
INSERT INTO `area` VALUES ('150', '130723', '康保县', '130700');
INSERT INTO `area` VALUES ('151', '130724', '沽源县', '130700');
INSERT INTO `area` VALUES ('152', '130725', '尚义县', '130700');
INSERT INTO `area` VALUES ('153', '130726', '蔚县', '130700');
INSERT INTO `area` VALUES ('154', '130727', '阳原县', '130700');
INSERT INTO `area` VALUES ('155', '130728', '怀安县', '130700');
INSERT INTO `area` VALUES ('156', '130730', '怀来县', '130700');
INSERT INTO `area` VALUES ('157', 
                        
                        
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/lyy296293760/article/details/78685163
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-14 21:53:47
  • 阅读 ( 998 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢