需要的jar包:
数据库代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
create database school character set utf8;
use school;
CREATE table provice (
pid INT PRIMARY KEY auto_increment,
pname varchar (20)
);
INSERT into provice VALUES ( null , "河南省" );
INSERT into provice VALUES ( null , "山东省" );
INSERT into provice VALUES ( null , "河北省" );
CREATE table city (
cid INT PRIMARY KEY auto_increment,
cname varchar (20),
pid int
);
-- 河南省
INSERT into city VALUES ( null , "郑州市" ,1);
INSERT into city VALUES ( null , "开封市" ,1);
INSERT into city VALUES ( null , "洛阳市" ,1);
-- 山东
INSERT into city VALUES ( null , "济南市" ,2);
INSERT into city VALUES ( null , "青岛市" ,2);
INSERT into city VALUES ( null , "淄博市" ,2);
-- 河北
INSERT into city VALUES ( null , "石家庄市" ,3);
INSERT into city VALUES ( null , "唐山市" ,3);
INSERT into city VALUES ( null , "秦皇岛市" ,3);
CREATE table street (
sid INT PRIMARY KEY auto_increment,
sname varchar (20),
cid int
);
-- 郑州市
INSERT into street VALUES ( null , "中原区" ,1);
INSERT into street VALUES ( null , "二七区" ,1);
INSERT into street VALUES ( null , "管城回族区" ,1);
-- 开封市
INSERT into street VALUES ( null , "龙亭区" ,2);
INSERT into street VALUES ( null , "顺河回族区" ,2);
INSERT into street VALUES ( null , "鼓楼区" ,2);
-- 洛阳市
INSERT into street VALUES ( null , "汝阳" ,3);
INSERT into street VALUES ( null , "宜阳" ,3);
INSERT into street VALUES ( null , "洛宁" ,3);
-- 济南市
INSERT into street VALUES ( null , "商河县" ,4);
INSERT into street VALUES ( null , "济阳县" ,4);
INSERT into street VALUES ( null , "平阴县" ,4);
-- 青岛市
INSERT into street VALUES ( null , "七区五市" ,5);
INSERT into street VALUES ( null , "市南区" ,5);
INSERT into street VALUES ( null , "市北区" ,5);
-- 淄博市
INSERT into street VALUES ( null , "博山" ,6);
INSERT into street VALUES ( null , "周村" ,6);
INSERT into street VALUES ( null , "临淄" ,6);
-- 石家庄市
INSERT into street VALUES ( null , "正定县" ,7);
INSERT into street VALUES ( null , "行唐县" ,7);
INSERT into street VALUES ( null , "灵寿县" ,7);
-- 唐山市
INSERT into street VALUES ( null , "乐亭县" ,8);
INSERT into street VALUES ( null , "迁西县" ,8);
INSERT into street VALUES ( null , "玉田县" ,8);
-- 秦皇岛市
INSERT into street VALUES ( null , "青龙满族自治县" ,9);
INSERT into street VALUES ( null , "昌黎县" ,9);
INSERT into street VALUES ( null , "卢龙县" ,9);
|
省:
1
2
3
4
5
6
|
package cn.hp.dao;
import cn.hp.model.Provice;
import java.util.List;
public interface ProviceInfoDao {
public List<Provice> findAll();
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package cn.hp.impl;
import cn.hp.dao.ProviceInfoDao;
import cn.hp.model.Provice;
import cn.hp.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class ProviceInfoDaoImpl implements ProviceInfoDao {
@Override
public List<Provice> findAll() {
Connection conn = DBHelper.getConn();
List<Provice> list = new ArrayList<Provice>();
String sql = "select * from provice" ;
try {
PreparedStatement ps=conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()){
Provice p = new Provice();
p.setPid(rs.getInt( 1 ));
p.setPname(rs.getString( 2 ));
list.add(p);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
package cn.hp.model;
public class Provice {
private int pid;
private String pname;
public Provice() {
}
public Provice( int pid, String pname) {
this .pid = pid;
this .pname = pname;
}
@Override
public String toString() {
return "Provice{" +
"pid=" + pid +
", pname='" + pname + '\ '' +
'}' ;
}
public int getPid() {
return pid;
}
public void setPid( int pid) {
this .pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this .pname = pname;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
package cn.hp.servlet;
import cn.hp.dao.ProviceInfoDao;
import cn.hp.impl.ProviceInfoDaoImpl;
import cn.hp.model.Provice;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet ( "/findprovice" )
public class FindProviceServlet extends HttpServlet {
public FindProviceServlet() {
super ();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// super.doGet(req, resp);
req.setCharacterEncoding( "utf-8" );
resp.setContentType( "text/html;charset=utf-8" );
ProviceInfoDao pid = new ProviceInfoDaoImpl();
List<Provice> plist=pid.findAll();
//把这个省份的集合转换成json格式的数据发送到前端页面
resp.getWriter().write(JSONObject.toJSONString(plist));
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super .doPost(req, resp);
}
}
|
市:
1
2
3
4
5
6
|
package cn.hp.dao;
import cn.hp.model.City;
import java.util.List;
public interface CityInfoDao {
public List<City> findAllCity( int pid);
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package cn.hp.impl;
import cn.hp.dao.CityInfoDao;
import cn.hp.model.City;
import cn.hp.model.Provice;
import cn.hp.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class CityInfoDaoImpl implements CityInfoDao {
@Override
public List<City> findAllCity( int pid) {
Connection conn = DBHelper.getConn();
List<City> list = new ArrayList<City>();
String sql = "select * from city where pid=?" ;
try {
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt( 1 ,pid);
ResultSet rs = ps.executeQuery();
while (rs.next()){
City c= new City();
c.setCid(rs.getInt( 1 ));
c.setCname(rs.getString( 2 ));
c.setPid(rs.getInt( 3 ));
list.add(c);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package cn.hp.model;
public class City {
private int cid;
private String cname;
private int pid;
public City() {
}
public City( int cid, String cname, int pid) {
this .cid = cid;
this .cname = cname;
this .pid = pid;
}
@Override
public String toString() {
return "City{" +
"cid=" + cid +
", cname='" + cname + '\ '' +
", pid=" + pid +
'}' ;
}
public int getCid() {
return cid;
}
public void setCid( int cid) {
this .cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this .cname = cname;
}
public int getPid() {
return pid;
}
public void setPid( int pid) {
this .pid = pid;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package cn.hp.servlet;
import cn.hp.dao.CityInfoDao;
import cn.hp.impl.CityInfoDaoImpl;
import cn.hp.model.City;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet ( "/findcitypid" )
public class FindCityPidServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding( "utf-8" );
resp.setContentType( "text/html;charset=utf-8" );
String id = req.getParameter( "id" );
CityInfoDao cid = new CityInfoDaoImpl();
List<City> list = cid.findAllCity(Integer.parseInt(id));
//把城市的集合转换成json格式的字符串发送到前端页面
resp.getWriter().write(JSONObject.toJSONString(list));
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super .doPost(req, resp);
}
}
|
区:
1
2
3
4
5
6
|
package cn.hp.dao;
import cn.hp.model.Street;
import java.util.List;
public interface StreetInfoDao {
public List<Street> findAllStreet( int cid);
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package cn.hp.impl;
import cn.hp.dao.StreetInfoDao;
import cn.hp.model.Provice;
import cn.hp.model.Street;
import cn.hp.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class StreetInfoDaoImpl implements StreetInfoDao {
@Override
public List<Street> findAllStreet( int cid) {
Connection conn = DBHelper.getConn();
List<Street> list = new ArrayList<Street>();
String sql = "select * from Street where cid=?" ;
try {
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt( 1 ,cid);
ResultSet rs = ps.executeQuery();
while (rs.next()){
Street s = new Street();
s.setDid(rs.getInt( 1 ));
s.setDname(rs.getString( 2 ));
s.setCid(rs.getInt( 3 ));
list.add(s);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package cn.hp.model;
public class Street {
private int did;
private String dname;
private int cid;
public Street() {
}
public Street( int did, String dname, int cid) {
this .did = did;
this .dname = dname;
this .cid = cid;
}
@Override
public String toString() {
return "Street{" +
"did=" + did +
", dname='" + dname + '\ '' +
", cid=" + cid +
'}' ;
}
public int getDid() {
return did;
}
public void setDid( int did) {
this .did = did;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this .dname = dname;
}
public int getCid() {
return cid;
}
public void setCid( int cid) {
this .cid = cid;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package cn.hp.servlet;
import cn.hp.dao.CityInfoDao;
import cn.hp.dao.ProviceInfoDao;
import cn.hp.dao.StreetInfoDao;
import cn.hp.impl.CityInfoDaoImpl;
import cn.hp.impl.ProviceInfoDaoImpl;
import cn.hp.impl.StreetInfoDaoImpl;
import cn.hp.model.City;
import cn.hp.model.Provice;
import cn.hp.model.Street;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet ( "/findstreetdid" )
public class FindStreetServlet extends HttpServlet {
public FindStreetServlet() {
super ();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding( "utf-8" );
resp.setContentType( "text/html;charset=utf-8" );
String id = req.getParameter( "id" );
StreetInfoDao did = new StreetInfoDaoImpl();
List<Street> list=did.findAllStreet(Integer.parseInt(id));
//把这个省份的集合转换成json格式的数据发送到前端页面
resp.getWriter().write(JSONObject.toJSONString(list));
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super .doPost(req, resp);
}
}
|
页面展示代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
< script src = "js/jquery-1.8.3.js" ></ script >
< html >
< head >
< title >Title</ title >
</ head >
< body >
< script >
$(function () {
$.ajax({
type:"get",
url:"findprovice",
dataType:"json",
success:function (data) {//data的值就是从后端发送过来的json格式的字符串
//拿到当前省份的元素对象
var obj = $("#provice");
for (var i =0;i< data.length ;i++){
var ob = "<option value='" +data[i].pid+"'>"+data[i].pname+"</ option >";
obj.append(ob);
}
}
})
})
</ script >
< select name = "provice" id = "provice" >
< option value = "0" >请选择</ option >
</ select >省
< select name = "city" id = "city" >
< option value = "0" >请选择</ option >
</ select >市
< select name = "street" id = "street" >
< option value = "0" >请选择</ option >
</ select >区
< script >
$("#provice").change(function () {
$("#city option").remove();
$.ajax({
type: "get",
url:"findcitypid?id="+$("#provice").val(),
dataType: "json",
success:function (data) {
var obj = $("#city");
for (var i =0;i< data.length ;i++){
var ob = "<option value='" +data[i].cid+"'>"+data[i].cname+"</ option >";
obj.append(ob);
}
}
})
})
</ script >
< script >
$("#provice").change(function () {
$("#street option").remove();
$.ajax({
type: "get",
url:"findstreetdid?id="+$("#provice").val(),
dataType: "json",
success:function (data) {
var obj = $("#street");
for (var i =0;i< data.length ;i++){
var ob = "<option value='" +data[i].did+"'>"+data[i].dname+"</ option >";
obj.append(ob);
}
}
})
})
</ script >
</ body >
</ html >
|
DBHelper类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package cn.hp.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBHelper {
private static String Driver = "com.mysql.jdbc.Driver" ;
private static String Url = "jdbc:mysql://localhost:3306/school?characterEncoding=utf8" ;
private static String user = "root" ;
private static String pwd = "root" ;
public static Connection conn;
// 创建数据库连接
public static Connection getConn() {
try {
Class.forName(Driver);
conn = DriverManager.getConnection(Url, user, pwd);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
// 关闭数据库连接
public static void getClose() {
try {
if (conn != null ) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 测试数据库连接
public static void main(String[] args) {
System.out.println(getConn());
if (getConn()!= null ) {
System.out.println( "链接成功" );
}
}
}
|
总结
本篇文章就到这里了,希望能给你带来帮助,也希望你能够多多关注服务器之家的更多内容!
原文链接:https://blog.csdn.net/wbcra/article/details/118075890