mysql 省市县三级联动查询_三级联动查询全国省市区(xml与数据库)
提供有china.xml和china.sql文件,实现全国省市区的三级联动效果
一、xml实现
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import java.awt.Font;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
@SuppressWarnings("serial")
public class ChinaJFrame extends JFrame {
private JPanel contentPane;
private List cityList=null;
private List provinceList=null;
private List countyList=null;
@SuppressWarnings("rawtypes")
private JComboBox provinceComboBox, cityComboBox, countyComboBox;
SAXReader reader = new SAXReader();
Document document = null;
List list=null;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ChinaJFrame frame = new ChinaJFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*
* @throws DocumentException
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public ChinaJFrame() throws DocumentException {
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
provinceComboBox = new JComboBox();
provinceComboBox.setModel(new DefaultComboBoxModel(new String[] { "省份" }));
provinceComboBox.setBounds(33, 106, 108, 21);
cityComboBox = new JComboBox();
cityComboBox.setBounds(171, 106, 108, 21);
cityComboBox.setModel(new DefaultComboBoxModel(new String[] { "地级市" }));
countyComboBox = new JComboBox();
countyComboBox.setBounds(302, 106, 108, 21);
countyComboBox.setModel(new DefaultComboBoxModel(new String[] { "市、县级市" }));
provinceList = getProvince("province");
for (String s : provinceList) {
provinceComboBox.addItem(s);
}
provinceComboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED){
int ProvinceIndex = provinceComboBox.getSelectedIndex();
cityList = getCity(ProvinceIndex);
cityComboBox.removeAllItems();
for (String s : cityList) {
cityComboBox.addItem(s);
}
}
}
});
cityComboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED){
cityComboBox=(JComboBox) e.getSource();
String name2=(String) cityComboBox.getSelectedItem();
countyList=getCounty(name2);
countyComboBox.removeAllItems();
for(String cl:countyList){
countyComboBox.addItem(cl);
}
}
}
});
JLabel lblNewLabel = new JLabel(
"\u5168\u56FD\u57CE\u5E02\u4E09\u7EA7\u8054\u52A8");
lblNewLabel.setFont(new Font("宋体", Font.BOLD, 18));
lblNewLabel.setBounds(140, 25, 160, 48);
contentPane.add(provinceComboBox);
contentPane.add(cityComboBox);
contentPane.add(countyComboBox);
contentPane.add(lblNewLabel);
}
@SuppressWarnings("unchecked")
public List getProvince(String name) {
list = new ArrayList();
try {
document = reader.read(new File("src/china.xml"));
} catch (DocumentException e) {
e.printStackTrace();
}
Element root = document.getRootElement();
for(Iterator i = root.elementIterator(name); i.hasNext();) {
Element node = i.next();
List attrs = node.attributes();
if (attrs != null) {
for (Attribute attr : attrs) {
list.add(attr.getValue());
}
}
}
return list;
}
@SuppressWarnings("unchecked")
public List getCity(int index) {
list = new ArrayList();
try {
document = reader.read(new File("src/china.xml"));
} catch (DocumentException e) {
e.printStackTrace();
}
Element root = document.getRootElement();
List elements = root.elements();
List elements1 = elements.get(index-1).elements();
for (int i=0; i < elements1.size(); i++) {
List attrs = elements1.get(i).attributes();
if (attrs != null) {
for (Attribute attr : attrs) {
list.add(attr.getValue());
}
}
}
return list;
}
@SuppressWarnings("unchecked")
public List getCounty(String name2){
list = new ArrayList();
try {
document = reader.read(new File("src/china.xml"));
} catch (DocumentException e) {
e.printStackTrace();
}
province[@name='北京市']
List nodes = document.selectNodes("//city[@name='" + name2 + "']//county//@name");
for (Node node : nodes) {
list.add(node.getText());
}
return list;
}
}
二、数据库实现
(1)数据库连接的配置文件
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/china
root
root
100
20
10
5
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/china
root
root
100
20
10
5
(2)实体Bean
public class Province {//省
private Integer id;
private String name;
}
public class City {//市
private Integer id;
private String name;
private Integer p_id;
}
public class County {//区
private Integer id;
private String name;
private Integer c_id;
}
(3)数据库操作接口定义和实现
public interface ChinaDao {
List getObjects();
List getCityObjectsById(Integer id);
List getCountyObjectsById(Integer id);
City getIdByName(String name);
}
public class ChinaDaoImpl implements ChinaDao{
private JdbcTemplate jdbcTemplate=new JdbcTemplate(DBConn.getDataSourse());
private List entities=null;
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public List getObjects() {
String sql="select id, name from province";
entities=jdbcTemplate.query(sql, new RowMapper(){
@Override
public Object mapRow(ResultSet rs, int arg1) throws SQLException {
Province province=new Province();
province.setId(rs.getInt("id"));
province.setName(rs.getString("name"));
return province;
}
});
return entities;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public List getCityObjectsById(Integer id) {
String sql="select id, name ,p_id from city where p_id=?";
entities=jdbcTemplate.query(sql, new Object[]{id},new RowMapper(){
@Override
public Object mapRow(ResultSet rs, int arg1) throws SQLException {
City city=new City();
city.setId(rs.getInt("id"));
city.setName(rs.getString("name"));
city.setP_id(rs.getInt("p_id"));
return city;
}
});
return entities;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public List getCountyObjectsById(Integer id) {
String sql="select id, name ,c_id from county where c_id=?";
entities=jdbcTemplate.query(sql, new Object[]{id},new RowMapper(){
@Override
public Object mapRow(ResultSet rs, int arg1) throws SQLException {
County county=new County();
county.setId(rs.getInt("id"));
county.setName(rs.getString("name"));
county.setC_id(rs.getInt("c_id"));
return county;
}
});
return entities;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public City getIdByName(String name) {
String sql="select id, name ,p_id from city where name=?";
City entity=jdbcTemplate.queryForObject(sql, new Object[]{name},new RowMapper(){
@Override
public Object mapRow(ResultSet rs, int arg1) throws SQLException {
City city=new City();
city.setId(rs.getInt("id"));
city.setName(rs.getString("name"));
city.setP_id(rs.getInt("p_id"));
return city;
}
});
return entity;
}
}
(4)具体实现
public class ChinaJFrame extends JFrame {
private ChinaDao chinaDao=new ChinaDaoImpl();
private JPanel contentPane;
private List cityList=null;
private List provinceList=null;
private List countyList=null;
@SuppressWarnings("rawtypes")
private JComboBox provinceComboBox, cityComboBox, countyComboBox;
SAXReader reader = new SAXReader();
Document document = null;
List list=null;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ChinaJFrame frame = new ChinaJFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*
* @throws DocumentException
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public ChinaJFrame() throws DocumentException {
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
provinceComboBox = new JComboBox();
provinceComboBox.setModel(new DefaultComboBoxModel(new String[] { "省份" }));
provinceComboBox.setBounds(33, 106, 108, 21);
cityComboBox = new JComboBox();
cityComboBox.setBounds(171, 106, 108, 21);
cityComboBox.setModel(new DefaultComboBoxModel(new String[] { "地级市" }));
countyComboBox = new JComboBox();
countyComboBox.setBounds(302, 106, 108, 21);
countyComboBox.setModel(new DefaultComboBoxModel(new String[] { "市、县级市" }));
List provinces=chinaDao.getObjects();
provinceList = new ArrayList();
for(Province p:provinces){
provinceList.add(p.getName());
}
for (String s : provinceList) {
provinceComboBox.addItem(s);
}
provinceComboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED){
cityList=new ArrayList();
int ProvinceIndex = provinceComboBox.getSelectedIndex();
List cities=chinaDao.getCityObjectsById(ProvinceIndex);
for(City city:cities){
cityList.add(city.getName());
}
cityComboBox.removeAllItems();
for (String s : cityList) {
cityComboBox.addItem(s);
}
}
}
});
cityComboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED){
cityComboBox=(JComboBox) e.getSource();
String name=(String) cityComboBox.getSelectedItem();
countyList=new ArrayList();
int CityIndex = chinaDao.getIdByName(name).getId();
List counties=chinaDao.getCountyObjectsById(CityIndex);
for(County county:counties){
countyList.add(county.getName());
}
countyComboBox.removeAllItems();
for(String cl:countyList){
countyComboBox.addItem(cl);
}
}
}
});
JLabel lblNewLabel = new JLabel(
"\u5168\u56FD\u57CE\u5E02\u4E09\u7EA7\u8054\u52A8");
lblNewLabel.setFont(new Font("宋体", Font.BOLD, 18));
lblNewLabel.setBounds(140, 25, 160, 48);
contentPane.add(provinceComboBox);
contentPane.add(cityComboBox);
contentPane.add(countyComboBox);
contentPane.add(lblNewLabel);
}
}
mysql 省市县三级联动查询_三级联动查询全国省市区(xml与数据库)相关推荐
- oracle 查询天,Oracle查询_ 单表查询
前面我们详解了关于Oracle的增删改,今天让我们接着来学习Oracle的查询吧, Oracle中查询可是重头戏噢!!!跟着煌sir的步伐,走位,走位~~~ 小知识锦囊 在此前,先讲解一个小知识点 O ...
- MySQL笔记:第06章_多表查询
第06章_多表查询 多表查询概述 1.一个案例引发的多表连接 1.1 案例说明 1.2 笛卡尔积(或交叉连接)的理解 演示代码 2. 多表查询分类讲解 分类1:等值连接 vs 非等值连接 等值连接 非 ...
- 智伴机器人三级分销模式_三级分销模式是如何实现裂变的?
三级分销模式是如何实现裂变的? 发布时间:2019-07-16 点击量:5399 分销模式是很多人认可的营销模式,很多企业也在用这种模式并且出现了很多成功案例.但有些新手不太了解三级分销系统具体是什么 ...
- 智伴机器人三级分销模式_三级分销模式详细解说不来了解一下吗!
互联网的诞生,让不少人都感受到科技带给人们的便利性,但是也好的一面,也就有了坏的一面,以前信息传输是较为困难且成本也高,但现在来说,人们获取信息的速度已经是很快了,所以这就对企业公司提出了要求,必须创 ...
- java数据查询_数据的查询
-- 创建数据 CREATE DATABASE day2; -- 使用数据库 USE day2; -- 创建一个表格 CREATE TABLE stu( id INT, NAME VARCHAR(20 ...
- sql \n 查询_探索SQL查询提示选项(快速N)
sql \n 查询 In this article, we will introduce SQL queries hint and will analyze the OPTION(Fast 'N') ...
- 如何根据vin码查询_车架号查询-VIN查询-车辆识别码查询-宜配网
请输入17位车架号码: 通过车架号查询车辆信息,在销售配件,二手车交易中十分重要,宜配网车架号在线查询系统,提供免费的车架号查询. 宜配网解码了全球大多数主流车型的车架号,宜配网车架号在线查询系统,不 ...
- oracle之子查询_,Oracle子查询详解
Oracle子查询详解,根据查询的结果(内部嵌套查询的结果)把子查询的类型分为单行子查询与多行子查询, 子查询概念 :当一个查询的结果是另一个查询的条件时,,称之为子查询. 使用子查询注意事项: 子查 ...
- 智伴机器人三级分销模式_三级分销系统是什么模式
展开全部 三级分销模式顾名思义:分销商只能获取三层佣金,超过三级就e68a843231313335323631343130323136353331333431353330与你无关.三级分销,也即品牌商 ...
- 智伴机器人三级分销模式_三级分销系统的模式有哪些
分配系统有多种模式,在现在微商火爆的阶段,三级分销系统很多人都会有一定的了解.三级分销是分销系统中的一个分支,这种模式虽然说比较少见,比较新鲜,但只要是做过微商的人,相信对三级分销系统的模式和作用都是 ...
最新文章
- Android监视返回键
- 腾讯云快直播——超低延迟直播技术方案及应用
- Python爬虫:一些常用的爬虫技巧总结
- android 继承listview,Android listView 继承ListActivity的用法
- 从市场角度看服务器虚拟化
- ddr4服务器内存和普通内存_买主板送DDR4内存!微星日联合大促开幕
- 【安全】phpldapadmin-1.2.3 界面使用
- 区块链技术介绍PPT
- 神经网络关于输入X 权重W 和偏置biase 的Shape形式辨析
- 免费从5sing上下载歌曲
- Latex中PDF文档目录乱码解决方案
- 基于物联网的室内环境监测系统设计的背景
- 电脑怎么连接隐藏的无线WiFi ?
- 非磺酸型离子液体([pmim]HSO4、[bmim]HSO4、[bpy]HSO4、[ppy]HSO4、[pmim]BF、[pmim]CF3SO3、[pmim]H2PO4)的定制合成
- Python爬虫实战(02)—— 爬取诗词名句三国演义
- python matplotlib中误差棒图
- 程序员必备的11个Github优质项目
- 2022年最流行的几款软件缺陷管理工具
- 数学证明到底是什么?
- iqooneo3 如何不用vivo账号下载外部应用_iQOO Neo3评测:救市或转型?总之香就对了...