導航:首頁 > 編程大全 > 省市資料庫的建立

省市資料庫的建立

發布時間:2024-01-09 07:12:08

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

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);
}
}

2. 1∶萬區域水文地質圖空間資料庫

一、內容概述

隸屬於國土資源大調查「數字國土」工程基礎資料庫建設計劃項目,是該工程中基礎資料庫重點建設項目之一。由中國地質調查局總工辦公室管理,前期由中國地質環境監測院和中國地質調查局發展研究中心共同組織實施,後期由中國地質環境監測院組織實施,各省(市、自治區)地質調查院和地質環境監測總站共同參與建設工作。

該項目是在制定的「1∶20萬區域水文地質圖空間資料庫圖層及屬性文件格式標准」的基礎上,以信息標准化工作為先導,形成了區域水文地質圖空間資料庫建設的工作流程、質量控制體系和系列工具軟體,建立了涉及全國范圍內共1017幅1∶20萬國際標准圖幅的區域水文地質圖空間資料庫(未在台灣省開展工作)。該資料庫成果基本完成了全國區域水文地質普查工作成果圖件的數字化建庫工作,是目前國內地質領域重要的全國性信息化成果之一,同時也是國內唯一的國家級、完整的區域水文地質信息化成果。

在已完成的全國區域水文地質普查工作成果基礎上,以1∶20萬區域水文地質圖為數據基礎,建立全國區域水文地質圖空間資料庫。

通過開展數字化建設,達到搶救全國范圍內區域水文地質普查成果資料和實現區域水文地質圖信息化建設的目標;通過編制區域水文地質圖空間數據建設工作指南和標准化建設,達到在全國范圍內普及水文地質專業信息化建設相關知識、培訓水文地質專業信息建設人員的目的,進而完善地質成果信息化建設流程、建立信息化建設質量控制體系;通過建立區域水文地質圖空間資料庫,達到全面反映區域水文地質特徵要素綜合空間信息的目標;通過建立元資料庫,實現對區域水文地質空間信息的編目、管理和發布。通過建立區域水文地質圖圖幅管理系統,實現區域水文地質圖信息的檢索查詢,達到為政府主管部門提供水文地質專業需求服務和技術支撐的目標,實現區域水文地質普查成果社會化、公益性服務的目標。

二、應用范圍及應用實例

區域水文地質基礎資料數據的建立,在國土資源合理開發利用、工農業生產建設、區域規劃設計及地質環境保護等方面發揮了巨大作用。但是,隨著時間的推移,傳統紙介質資料圖件逐漸破損、辨認困難,少部分資料年久破損嚴重已無法正常使用。

有鑒於區域水文地質普查資料數據的重要性和資料保存現狀,1∶20萬區域水文地質圖空間資料庫旨在利用GIS(地理信息系統)技術,對以圖件為主要對象的區域水文地質信息(含文字報告、記錄卡片)進行數字化並建立空間資料庫,搶救性保護這批極其珍貴的基礎資料,同時為各行業規劃、生產提供基礎性資料服務,為國家經濟建設宏觀決策、國土資源綜合管理提供高效、便捷的信息化支持服務。

建成了一個全國性的、大型的全國區域水文地質圖空間資料庫,採集、處理了全國范圍內1∶20萬國際標准圖幅1017幅的全要素綜合水文地質圖信息。全部數據量200 G。

通過數字化建庫工作,形成了可滿足政府和社會公益需求和服務為目的的系列產品,主要包括:

(1)MAPGIS格式1∶20萬綜合水文地質圖空間資料庫;

(2)MAPGIS格式1∶20萬綜合水文地質圖全要素數字圖件;

(3)ARCINFO格式數據和E00交換格式數據;

(4)1∶20萬綜合水文地質圖原始資料掃描圖;

(5)國家級、省級和單圖幅的1∶20萬區域水文地質圖空間資料庫元數據。

項目形成的數字化成果,已被廣泛的應用在全國地下水資源調查、四川紅層地區找水、華北平原地面沉降調查、全國汛期地質災害預警預報、城市規劃及川氣東送、地質災害危險性評估等項目中,在行業內產生了巨大的影響,發揮了基礎數據的支撐作用。

三、推廣轉化方式

通過建立區域水文地質圖圖幅管理系統,實現區域水文地質圖信息的檢索查詢,達到為政府主管部門提供水文地質專業需求服務和技術支撐的目標,實現區域水文地質普查成果社會化、公益性服務的目標。

技術依託單位:中國地質環境監測院

聯系人:褚洪斌張斌

通訊地址:北京市海淀區大慧寺20號

郵政編碼:100081

聯系電話:010-62179611

電子郵件:[email protected][email protected]

3. 貴州資料庫建在什麼地方(大數據庫為什麼在貴州)

一、基礎網路能力強悍,是數據中心的必須的基礎設施

中國移動、中國聯通和中國電信三大運營商大數據中心的建立為貴陽奠定了產業發展的基礎。三大運營商數據中心在貴安新區相繼開工建設,其中:中國電信雲計算中心用地500畝,總投資70億元;中國移動(貴州)數據中心項目用地275畝,總投資20億元;中國聯通(貴安)雲計算基地用地500畝,總啟跡投資50億元。

三大運營商數據中心在貴安新區相繼建成後,將使貴陽周邊特定區域集聚20-30萬的機架、上百萬台的伺服器,數據存儲規模可達EB以上,成為國內乃至全球最大的數據聚集地之一。國內運營商的支持,使得數據中心所必須的網路基礎能力得以具備。

二、可以省錢,緣由是得天獨厚的氣候條件

其實不僅僅是蘋果公司,建立數據中心,有不少企辯歷業選址貴陽。其中得天獨厚的是自然條件,其中比較重要的是氣候條件:貴陽市氣候涼爽,周邊年平均氣溫15.1攝氏度,夏無酷暑,冬無嚴寒。溫度適宜的好處是可以省暖氣費和空調費。以及,貴陽宜居,也有利於引進人才。空氣清新,達到世界衛生組織設立的清新空氣負氧離子標準的上限;緯度合適,處於北緯26度;海拔適中,在l000米左右,紫外線輻射為全國乃至全球最少的地區之一,非常適合人居;災害罕見,沒有發生過地震、台風等。

三、電力充足

對於大數據中心來說,斷電或者電力不足是非常恐怖的事情。而貴陽,點亮充足,也是建立數據中心的亮點。貴州省電力充沛,能源富足,是「西電東送」的起源。貴州省水資源豐富,電力水火並攜旁搜濟,穩定可靠。

四、均衡城市資源,以獲取更多的政府資源扶持

蘋果公司目前已經在北京和深圳建立或開建了研發中心,並計劃在上海和蘇州也建立研發中心。對於都希望蘋果落地支持的各大城市來說,蘋果公司自然也得平衡一下各方的需求,同時分散到不同的城市也非常利於談判,獲得優厚政策支持。所以在北京、深圳、上海、蘇州等落地或者即將落地,在選擇一個新城市,就合情合理了。另一個原因,貴陽地處西部,也是布局數據中心的合理地方之一,西部無非成都,其次就是貴陽可選了。

五、優惠政策

在吸引公司前來投資方面,政府也做出了出色的工作,推出了試點工程,並為用電等的使用提供優惠。

事實上很多互聯網企業數據中心放在一般意義的中西部省份,確實是存在的。除了貴州以外,其實還包括寧夏固原、內蒙古的烏蘭察布等地區都有一些大型企業的數據和計算中心進駐,包括題主提到的這些企業,還有亞馬遜雲、華為等。

這些企業的計算和數據中心落戶這些地區,可能出於如下原因:第一,地方政府出於發展地方經濟,招商引資的結果。因為計算和數據服務業,屬於典型的生產性服務業,附加值高,利於地方經濟發展和區域品牌打造。第二,對企業而言,計算和數據中心等放在一線城市和中心城市成本偏高,而基礎設施較好的中西部地區成本(空間成本、能源成本、運維成本等)相對要低很多。第三,安全考慮。數據和計算中心是互聯網企業的命脈,特別是大型互聯網企業,更是如此。在這種情況下,類似於美國把最前沿的科技研究放在人跡罕至的51區,很多大型互聯網企業把數據中心放在不引人注目中西部地區就可以理解了。

最後,貴州一直得到國家支持建設信息產業基地,各種人才政策、財稅政策和產業政策大力傾斜,這也是吸引互聯網企業進駐,或者建設數據和計算功能性總部的原因吧。

4. 像美團之類帶有地區選擇的資料庫是如何設計的呢

三級聯動吧,(先得到省表數據,前端選擇了某省,把省id帶到市表,就得到該省下的城市,然後區也是)

最後發揮你網路的技能,搜索省市區的資源了哦。

5. 我想建一個關於省,市,縣/區資料庫,如果考慮SQL性能,請問建一張表好還是3張表好

一張表,增加一個欄位 設置所屬的父(省、或者市)的id就可以了,如果頂級(省或者直轄市id為0)

閱讀全文

與省市資料庫的建立相關的資料

熱點內容
國外人都用什麼app采購 瀏覽:669
梅林寶具升級效果 瀏覽:512
為什麼用u8數據備份不了 瀏覽:703
java文件路徑怎麼讀 瀏覽:690
ps被重復命名的文件怎麼找回 瀏覽:564
少兒編程五級有什麼用 瀏覽:529
網路詞有毒是什麼意思 瀏覽:218
蘋果未越獄怎麼裝ipa文件 瀏覽:831
app版權信息頁怎麼寫 瀏覽:334
現成的編程代碼在哪裡下載 瀏覽:362
java7隨機數 瀏覽:890
網路連接度是什麼意思 瀏覽:610
頭條文件路徑在哪裡 瀏覽:833
java主進程 瀏覽:5
軟體app怎麼分享給別人 瀏覽:547
win10怎麼取消使用簡單文件共享 瀏覽:470
微信小程序編譯不變 瀏覽:551
地推推廣哪些app好 瀏覽:974
win10怎麼查無線網密碼是多少 瀏覽:66
數控車工如何考編程 瀏覽:48

友情鏈接