當前位置:首頁 » 數據倉庫 » 全國省市區資料庫mysql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

全國省市區資料庫mysql

發布時間: 2022-04-23 03:01:15

㈠ 省市區 地址聯動 數據怎麼創建

1、在做這個小項目前的准備工作:
1.1、分析:
由於省、市、縣城(區)這些數據是存儲到了Mysql資料庫中的,我們要通過後台servlet獲取資料庫中的數據,然後再通過轉發或者重定向的方式將數據呈現到前台頁面中。
1.2、需要導入的jar包有:
mysql驅動包:mysql-connector-Java-5.1.7-bin.jar
c3p0資料庫連接池:c3p0-0.9.2.1.jar、mysql-connector-java-5.1.7-bin.jar(c3p0依賴包)
前台c標簽(需要通過遍歷的方式呈現——c:forEach):jstl-1.0.2.jar、standard-1.0.1.jar(jstl依賴包)
將集合或者數組轉換成json數據格式(Jackson包):jackson-annotations-2.2.1.jar、jackson-core-2.2.1.jar、jackson-databind-2.2.1.jar
前台頁面需要用到jQuery,故還需要導入jquery-1.7.2.js庫文件
1.3、該小項目用到的技術:
jdbc的知識、servlet的知識、jquery的知識、Ajax的知識(局部刷新)、標簽的知識、EL表達式的知識、JSP的知識
2、開發過程:
2.1、准備數據源
創建一個資料庫,命名為thereaction並創建三個表——province(省)、city(市)、county(縣/區)
2.2後台開發
創建三個Javabean分別是Province、City、County。(由於太過簡單,這里就不粘代碼了)
創建Java類和c3p0連接池實現與資料庫的連接:DAO.java(實現獲取資料庫數據的功能)、jdbctools.java(實現獲取資料庫連接、釋放連接的功能)、c3p0-config.xml
jdbctools.java代碼如下:
[java] view plain
package com.xiaojie.;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class Jdbctools {
private static DataSource ds=null;
//資料庫連接池應只被初始化一次
static{
ds=new ComboPooledDataSource("helloc3p0");
}
//獲取資料庫連接
public static Connection getConnection() throws ClassNotFoundException, SQLException, IOException{
return ds.getConnection();
}
public static void shifanglianjie(Connection ct, PreparedStatement ps,ResultSet rs) {
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(ct!=null){
try {
ct.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}

DAO.java的代碼如下
[java] view plain
package com.xiaojie.;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.xiaojie.beans.City;
import com.xiaojie.beans.County;
import com.xiaojie.beans.Province;

public class DAO {
public List<Province> getprovince(String sql ,Object...args) throws ClassNotFoundException, SQLException, IOException{
List<Province> provinces=new ArrayList<Province>();
//准備去查資料庫
Connection ct=null;
ct=Jdbctools.getConnection();
System.out.println("獲取到資料庫的連接了");
PreparedStatement ps=null;
ResultSet rs=null;
ps=ct.prepareStatement(sql);
for(int i=0;i<args.length;i++){
ps.setObject(i+1, args[i]);
}
rs=ps.executeQuery();
while(rs.next()){
provinces.add(new Province(rs.getInt("province_id"),rs.getString("province_name")));
}
Jdbctools.shifanglianjie(ct, ps, rs);
return provinces;

}
public List<City> getcity(String sql ,Object...args) throws SQLException, ClassNotFoundException, IOException{
List<City> cities=new ArrayList<City>();
//准備去查資料庫
Jdbctools jt=new Jdbctools();
Connection ct=null;
ct=jt.getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
ps=ct.prepareStatement(sql);
for(int i=0;i<args.length;i++){
ps.setObject(i+1, args[i]);
}
rs=ps.executeQuery();
while(rs.next()){
cities.add(new City(rs.getInt("city_id"),rs.getString("city_name")));
}
jt.shifanglianjie(ct, ps, rs);
return cities;

}
public List<County> getcounty(String sql,Object...args ) throws SQLException, ClassNotFoundException, IOException{
List<County> counties=new ArrayList<County>();
//准備去查資料庫
Jdbctools jt=new Jdbctools();
Connection ct=null;
ct=jt.getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
ps=ct.prepareStatement(sql);
for(int i=0;i<args.length;i++){
ps.setObject(i+1, args[i]);
}
rs=ps.executeQuery();
while(rs.next()){
counties.add(new County(rs.getInt("county_id"),rs.getString("county_name")));
}
jt.shifanglianjie(ct, ps, rs);
return counties;

}
}
c3p0-config.xml的代碼如下:
[html] view plain
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<named-config name="helloc3p0">
<!-- 連接數據源的基本屬性 -->
<property name="user">root</property>
<property name="password"></property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///thereaction</property>

<!-- 若資料庫中連接數不足時,一次向資料庫伺服器申請多少個連接 -->
<property name="acquireIncrement">5</property>
<!-- 初始化資料庫連接池時連接的數量 -->
<property name="initialPoolSize">5</property>
<!-- 資料庫連接池中的最小的資料庫連接數 -->
<property name="minPoolSize">5</property>
<!-- 資料庫連接池中的最大的資料庫連接數 -->
<property name="maxPoolSize">10</property>
<!-- c3p0資料庫連接可以維護的statement的個數 -->
<property name="maxStatements">20</property>
<!-- 每個連接同時可以使用的statement對象的個數 -->
<property name="maxStatementsPerConnection">5</property>
</named-config>
</c3p0-config>

創建servlet.java 文件
[java] view plain
package com.xiaojie.servlet;

import java.io.IOException;
import java.lang.reflect.Method;
import java.sql.SQLException;
import java.util.List;

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 com.fasterxml.jackson.databind.ObjectMapper;
import com.xiaojie.beans.City;
import com.xiaojie.beans.County;
import com.xiaojie.beans.Province;
import com.xiaojie..DAO;
/**
* Servlet implementation class ThreeactiondServlet
*/
@WebServlet("/threeactiondServlet")
public class ThreeactiondServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String methodname=request.getParameter("method");
try {
Method method=getClass().getDeclaredMethod(methodname,HttpServletRequest.class,HttpServletResponse.class);
method.invoke(this, request,response);//調用各自的方法
} catch (Exception e) {
e.printStackTrace();
}
}
private DAO =new DAO();
protected void province(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ClassNotFoundException, SQLException {
System.out.println("province的servlet進入了");
String sql="select province_id,province_name from province";
List<Province> provinces=.getprovince(sql);
request.setAttribute("provinces", provinces);
System.out.println(provinces);
//注意:這里不能用重定向的形式,因為我們好不容易在request請求域中存儲了省的信息,目的是在前台頁面中能夠從請求域中獲取到我們存在資料庫中的值
//故這里只能用轉發的方式
request.getRequestDispatcher("/index2.jsp").forward(request, response);
}
protected void city(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ClassNotFoundException, SQLException {
System.out.println("city的servlet進入了");
String province_id=request.getParameter("province_id");
String sql="select city_id,city_name from city where province_id=?";
List<City> cities=.getcity(sql,Integer.parseInt(province_id));
ObjectMapper mapper=new ObjectMapper();
String result=mapper.writeValueAsString(cities);
System.out.println(result);
response.setContentType("text/javascript");
response.getWriter().print(result);
}
protected void county(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ClassNotFoundException, SQLException {
System.out.println("county的servlet進入了");
String city_id=request.getParameter("city_id");
String sql="select county_id,county_name from county where city_id=?";
List<County> counties=.getcounty(sql,Integer.parseInt(city_id));
ObjectMapper mapper=new ObjectMapper();
String result=mapper.writeValueAsString(counties);
System.out.println(result);
response.setContentType("text/javascript");
response.getWriter().print(result);
}
}

㈡ 求一份完整的全國省市縣 三級 聯動sql資料庫,最好是mysql的 ,sql文本,能組裝成樹的。

我已經發到你的QQ郵箱去了。

㈢ 國內免費MySQL資料庫

PHP空間和MySQL資料庫是在同一個主機上的

㈣ 幫忙發一份全國省市縣 三級 聯動sql資料庫,最好是mysql的 ,sql文本。謝謝。 郵箱:[email protected]

已發,注意查收。記得加分啊。
花了我一個小時弄出來的。

㈤ 求省市縣三級聯MySQL資料庫代碼

描述的不清楚

㈥ 全世界國家和城市的mysql資料庫

好邪惡

㈦ 如何將全國的省市插入mysql資料庫還是手動一個個insert列入下截圖

網上搜一下可以搜得到的。這里有一個可以給你參考下:
http://wenku..com/link?url=c-

㈧ 跪求帶MYSQL資料庫的中國地區的三級聯動下拉

<html>
<head>
<title>智能遞歸菜單-讀取資料庫</title>
<style>
TD {
FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; LINE-HEIGHT: 130%; letter-spacing:1px
}
A:link {
COLOR: #990000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; TEXT-DECORATION: none; letter-spacing:1px
}
A:visited {
COLOR: #990000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; TEXT-DECORATION: none; letter-spacing:1px
}
A:active {
COLOR: #990000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; TEXT-DECORATION: none; letter-spacing:1px
}
A:hover {
COLOR: #ff0000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; TEXT-DECORATION: underline; letter-spacing:1px
}
.Menu {
COLOR:#000000; FONT-FAMILY: "Verdana", "宋體"; FONT-SIZE: 12px; CURSOR: hand
}
</style>
<script language=javascript>
function ShowMenu(MenuID)
{
if(MenuID.style.display=="none")
{
MenuID.style.display="";
}
else
{
MenuID.style.display="none";
}
}
</script>
</head>
<body>
<?php
//基本變數設置
$GLOBALS["ID"] =1; //用來跟蹤下拉菜單的ID號
$layer=1; //用來跟蹤當前菜單的級數
//連接資料庫
$Con=mysql_connect("localhost","root","123456");
mysql_select_db("menu");
//提取一級菜單
$sql="select * from menu where parent_id=0";
$result=mysql_query($sql,$Con);
//如果一級菜單存在則開始菜單的顯示
if(mysql_num_rows($result)>0) ShowTreeMenu($Con,$result,$layer,$ID);
//=============================================
//顯示樹型菜單函數 ShowTreeMenu($con,$result,$layer)
//$con:資料庫連接
//$result:需要顯示的菜單記錄集
//layer:需要顯示的菜單的級數
//=============================================
function ShowTreeMenu($Con,$result,$layer)
{
//取得需要顯示的菜單的項目數
$numrows=mysql_num_rows($result);
//開始顯示菜單,每個子菜單都用一個表格來表示
echo "<table cellpadding='0' cellspacing='0' border='0'>";
for($rows=0;$rows<$numrows;$rows++)
{
//將當前菜單項目的內容導入數組
$menu=mysql_fetch_array($result);
//提取菜單項目的子菜單記錄集
$sql="select * from menu where parent_id=$menu[id]";
$result_sub=mysql_query($sql,$Con);
echo "<tr>";
//如果該菜單項目有子菜單,則添加JavaScript onClick語句
if(mysql_num_rows($result_sub)>0)
{
echo "<td width='20'><img src='tree_expand.gif' border='0'></td>";
echo "<td class='Menu' onClick='javascript:ShowMenu(Menu".$GLOBALS["ID"].");'>";
}
else
{
echo "<td width='20'><img src='tree_collapse.gif' border='0'></td>";
echo "<td class='Menu'>";
}
//如果該菜單項目沒有子菜單,並指定了超級連接地址,則指定為超級連接,
//否則只顯示菜單名稱
if($menu[url]!="")
echo "<a href='$menu[url]'>$menu[name]</a>";
else
echo $menu[name];
echo "
</td>
</tr>
";
//如果該菜單項目有子菜單,則顯示子菜單
if(mysql_num_rows($result_sub)>0)
{
//指定該子菜單的ID和style,以便和onClick語句相對應
echo "<tr id=Menu".$GLOBALS["ID"]++." style='display:none'>";
echo "<td width='20'> </td>";
echo "<td>";
//將級數加1
$layer++;
//遞歸調用ShowTreeMenu()函數,生成子菜單
ShowTreeMenu($Con,$result_sub,$layer);
//子菜單處理完成,返回到遞歸的上一層,將級數減1
$layer--;
echo "</td></tr>";
}
//繼續顯示下一個菜單項目
}
echo "</table>";
}
?>
<?php
$id = 1;
function test()
{
global $id;
unset($id);
}
test();
echo"<font class=menu>".($id)."</font>"; // 在 PHP 4 中這里會列印出 1
?>
<?php
$a = 1;
$b = 2;

function Sum()
{
global $a, $b;

$b = $a + $b;
}

Sum();
echo "<font class=menu>".$b."</font>";
?>

</body>
</html>

呵呵,看咋樣,是遞歸出來的......

㈨ MySQL資料庫跨省同步問題

千萬別做這事,一個會嚴重影響伺服器效率,一個會引起數據不一致。
購買VPN終端或者VPN交換機,虛擬一個區域網,建立數據查詢交互就好了。

㈩ Java 在做一個注冊頁面,mysql里已經有了用戶表,省、市、縣三張表(沒有關聯)已導入全國數據

1、省市縣不建議放在資料庫裡面,因為你選擇不同省市時 要觸發查詢這樣效率太低。我的建議是網路下一個省市縣的一個json文件,來進行讀取。

2、頁面代碼就是控制select中option的改變,這個會基本jquery 就可以。

varprovinceData;//全局變數省市數據
varprovinceSelect=$("#province");//省下拉框
varcitySelect=$("#city");//市下拉框
init();
functioninit(){
$.getJSON("data/province-city.json",function(data){
provinceData=data.address;//這里因為我的json數據,外麵包了一層address
loadProvince();//初始化省
});
}

functionloadProvince(){
for(vari=0,j=provinceData.length;i<j;i++){
provinceSelect.append("<option>"+provinceData[i].name+"</option>");
}
}
//省改變是動態改變市下拉框裡面的值
functionloadCity(ele){
//獲取選中的索引
varindex=ele.selectedIndex;
//記得清空
citySelect.empty();
varprovince=provinceData[index];
varcitys=province.child;
for(vari=0,j=citys.length;i<j;i++){
citySelect.append("<option>"+citys[i].name+"</option>");
}
}

不明白的話歡迎提問哈