• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于 Java調用WebService的應用實例

      2010-09-07 09:13:26
      中低緯山地氣象 2010年2期
      關鍵詞:調用校驗語句

      左 斌

      (重慶市彭水縣氣象局,重慶 彭水 409600)

      基于 Java調用WebService的應用實例

      左 斌

      (重慶市彭水縣氣象局,重慶 彭水 409600)

      簡要介紹了基于 Java就省、市氣象局WebService實時數(shù)據(jù)庫接口應用于本地數(shù)據(jù)庫的程序設計??芍苯荧@取適時雨量、溫度等氣象要素數(shù)據(jù),并持久化到本地數(shù)據(jù)庫。該技術現(xiàn)已在彭水縣氣象信息系統(tǒng) (互聯(lián)網(wǎng) http:// 219.153.254.73/qx和 http://219.153.254.73/qx/psqxj.jsp)上成功實現(xiàn)。

      Java;數(shù)據(jù)庫;接口;多線程

      1 引言

      省、市氣象局實時和歷史數(shù)據(jù)庫檢索接口的建立,為各區(qū)(縣)局通過實時數(shù)據(jù)庫檢索接口獲取本區(qū)(縣)自動站和區(qū)域自動站實時數(shù)據(jù),實現(xiàn)實時數(shù)據(jù)本地化,構建區(qū) (縣)級氣象信息平臺,更好地為地方各級政府、部門、鄉(xiāng)鎮(zhèn)提供實時的氣象數(shù)據(jù)服務(圖 1),是深化決策、安全氣象服務的重要內容之一。本文就基于 Java平臺如何通過實時數(shù)據(jù)庫檢索接口定時獲取實時數(shù)據(jù),實現(xiàn)數(shù)據(jù)的存儲校驗作出了詳細闡述。

      圖 1 氣象數(shù)據(jù)服務網(wǎng)絡拓撲圖

      2 實時數(shù)據(jù)庫接口應用程序的特點

      實時數(shù)據(jù)庫檢索應用程序既要能夠定時通過省、市數(shù)據(jù)庫接口把存儲在數(shù)據(jù)庫中有關本地的自動站數(shù)據(jù)檢索出來,定時插入到本地數(shù)據(jù)庫,實現(xiàn)本地數(shù)據(jù)庫與省、市數(shù)據(jù)庫的同步和一致,又要考慮到可能出現(xiàn)的數(shù)據(jù)傳輸?shù)裙收?出現(xiàn)數(shù)據(jù)漏傳的情況,具備定時校驗本地數(shù)據(jù)庫數(shù)據(jù)完整性功能,定時將漏傳的數(shù)據(jù)檢驗出來,補傳到本地數(shù)據(jù)庫。實時數(shù)據(jù)庫接口應用程序存取的數(shù)據(jù)應具有可用性 (Availability)、完整性 (Integrity)、真實性 (Authenticity)特點。

      3 數(shù)據(jù)庫設計

      以獲取重慶自動站實時地面氣象要素資料 (Z_ O_AWS_ST_C5_CQ)〔1〕中彭水站點的數(shù)據(jù)為例,可設計出與之相對應的本地數(shù)據(jù)庫中的站表“pengshui”(表 1)。

      以MySQL數(shù)據(jù)庫為例,創(chuàng)建數(shù)據(jù)庫和表的順序為:首先,進入MySQL Command Line Client命令行,創(chuàng)建好本地庫“info”;然后,按站點建表,創(chuàng)建各自動站的表(具體代碼略)。

      4 數(shù)據(jù)庫連接

      4.1 數(shù)據(jù)庫連接技術

      數(shù)據(jù)庫連接技術—JDBC(Java Database Connectivity)是用于執(zhí)行語句的應用程序編程接口 API。JDBC能為開發(fā)者提供標準的數(shù)據(jù)庫訪問類和接口,能夠方便地向任何異構數(shù)據(jù)庫發(fā)送 SQL語句,同時JDBC是一個支持基本 SQL查詢功能的低層應用程序接口,能在不同的數(shù)據(jù)庫功能的層次上提供一個統(tǒng)一的用戶界面,同時支持高層的數(shù)據(jù)庫訪問工具及API。

      第一步是裝載 JDBC驅動程序。通常采用的是調用方法 Class.for Name顯式地加載驅動程序類,格式為:

      Class.for Name

      (“companyName.databaseName.DriverName”);

      第二步是與數(shù)據(jù)庫建立連接,采用的標準方式是調用 Drive rManager.getConnection方法,下列代碼是一般的做法:

      Connection conn=Drive rManager.getConnection (url,“Login”,“Pass word");

      式中 url為統(tǒng)一資源定位器,代表要進行連接的數(shù)據(jù)庫?!癓ogin”和“Password”替換為實際登錄的DBMS的用戶名和口令。若連接成功,則返回一個 Connection類的對象 conn。

      連接一旦建立,下一步就可向所涉及的數(shù)據(jù)庫傳送 SQL語句。JDBC提供了 Statement、Prepared-Statement、CallableStatement三個類,用于向數(shù)據(jù)庫發(fā)送 SQL語句。其中 Statement對象用于發(fā)送不帶參數(shù)的簡單的 SQL語句;PreparedStatement對象用于發(fā)送帶或不帶輸入?yún)?shù)的 SQL語句;CallableS-tatement對象用于執(zhí)行 SQL儲存程序的調用。由方法 createStatement建立名為 stmt的 Statement對象的格式為:

      Statement stmt=conn.createStatement();

      需要指出的是,stmt不包含傳送給 DBMS的 SQL語句,需要提供執(zhí)行 stmt的方法。Statement接口提供了三種執(zhí)行 SQL語句的方法:executeQuery、executeUpdate和 execute。方法 executeQuery用于產生單個結果集;方法 executeUpdate用于執(zhí)行 INSERT、UPDATE或DELETE語句;方法 execute用于執(zhí)行返回多個結果集。下面給出采用 execQuery方法的語句格式:

      ResultSet rs= stmt.executeQuery("SQL語句");

      executeQuery的參數(shù)是一個查詢語句,它的返回值保存在 ResultSet類對象 rs中〔2〕。

      表 1 pengshui自動站表

      4.2 數(shù)據(jù)庫連接類的設計

      為了方便主程序調用數(shù)據(jù)庫連接等操作,通常把對數(shù)據(jù)庫的各種操作,采用請求轉發(fā)的原理設計封裝成一個數(shù)據(jù)庫連接基類 (DB.java),由數(shù)據(jù)庫連接基類來封裝基于 JDBC的連接數(shù)據(jù)庫 (代碼略)。

      5 多線程實現(xiàn)定時檢索和存儲校驗

      多線程是 Java的一個重要特點,這使得在一個Java程序內部可同時進行多種運算,從而充分利用系統(tǒng)資源,提高程序運行效率。多線程程序可提高系統(tǒng)的輸入/輸出速度、有效利用系統(tǒng)資源、改善計算機通訊功能等優(yōu)點。

      程序運用 Java多線程實現(xiàn)縣局自動站數(shù)據(jù)、區(qū)域自動站數(shù)據(jù)的定時獲取和數(shù)據(jù)存儲校驗及其定時補傳功能。實現(xiàn)數(shù)據(jù)從市局數(shù)據(jù)庫接口每小時定時讀取的思路是,啟用一個線程,用 Calendar類(日歷類)的 getInstance()方法得到一個時間點,判斷它是否為指定的上傳時間。true,則執(zhí)行 getdatatoarray方法獲得本站現(xiàn)在的氣象要素數(shù)據(jù)并添加到本地數(shù)據(jù)庫,執(zhí)行完畢后,讓線程休眠較長時間段(58min);false,則讓線程休眠較短的時間段 (58s),再執(zhí)行以上判斷,并把這個 if語句置于一個 while (true)語句內反復運行來實現(xiàn)不間斷的自動獲取每小時實時數(shù)據(jù)。實現(xiàn)數(shù)據(jù)補傳的思路是,啟用第二個線程,編寫一個從 0到 23的循環(huán),用 dataCheck ()檢索本地數(shù)據(jù)庫中是否正確插入昨日逐小時的數(shù)據(jù),如果沒有數(shù)據(jù),則補傳。

      6 實體類的設計

      構建好數(shù)據(jù)庫,寫好數(shù)據(jù)庫連接基類后,接著應設計站點實體類,就站點對象抽象出來的 rainfallhour、airtemp、relhumidity等屬性,分別寫出 set和 get方法,并在這個類中封裝數(shù)據(jù)存儲和數(shù)據(jù)校驗等方法。部份核心代碼如下:

      7 主程序的設計

      主程序采用 MySQL作為數(shù)據(jù)庫服務器,Net-Beans作為編程工具和設計工具,在程序編寫前,需要建立一個 Web Service Client,并對 WSDL URL、Client Style等參數(shù)進行配置[3]。

      圖 2 主程序控制流程圖

      7.1 主程序控制流程圖(圖 2)

      7.2 主程序代碼

      根據(jù)多線程的設計方案和從市局數(shù)據(jù)庫接口每小時定時讀取的思路,可設計出本數(shù)據(jù)庫接口應用實例的主程序 (main.java)。部份核心代碼如下:

      8 結束語

      該實時數(shù)據(jù)庫接口應用實例在設計時從整體考慮,建立了嚴格的完整性規(guī)則和科學數(shù)據(jù)庫結構,將定時檢索省(市)級數(shù)據(jù)庫接口、存儲過程、數(shù)據(jù)完整性校驗應用到程序設計中,加大了后臺的功能和效率,對數(shù)據(jù)庫的安全、自動化定時存取做了充分的考慮,提高了氣象數(shù)據(jù)本地化應用水平。該實時數(shù)據(jù)庫接口應用程序設計為本地氣象信息系統(tǒng)的開發(fā)打下了良好的基礎,只要結合前臺開發(fā)工具和平臺,就能實現(xiàn)系統(tǒng)的強大功能。

      [1] 實時和歷史數(shù)據(jù)庫檢索接口應用方法—應用文檔說明 .

      [2] 趙景林 .利用 JDBC訪問面向 Internet的數(shù)據(jù)庫[J].微機發(fā)展,2001,11(5):33-35.

      TP311

      B

      2010-09-10

      左斌(1973-),男,工程師,主要從事信息網(wǎng)絡管理工作。

      1003-6598(2010)增刊 -0183-04

      猜你喜歡
      調用校驗語句
      重點:語句銜接
      核電項目物項調用管理的應用研究
      LabWindows/CVI下基于ActiveX技術的Excel調用
      測控技術(2018年5期)2018-12-09 09:04:46
      爐溫均勻性校驗在鑄鍛企業(yè)的應用
      精彩語句
      基于系統(tǒng)調用的惡意軟件檢測技術研究
      大型電動機高阻抗差動保護穩(wěn)定校驗研究
      電測與儀表(2015年1期)2015-04-09 12:03:02
      基于加窗插值FFT的PMU校驗方法
      鍋爐安全閥在線校驗不確定度評定
      如何搞定語句銜接題
      語文知識(2014年4期)2014-02-28 21:59:52
      彝良县| 松溪县| 武山县| 宜君县| 大埔区| 大同市| 万源市| 松阳县| 呼和浩特市| 阿城市| 泸水县| 万年县| 沙田区| 韶山市| 香港 | 吉木萨尔县| 绥芬河市| 本溪| 四川省| 余庆县| 龙胜| 嘉义市| 天柱县| 通化市| 花莲市| 原阳县| 吉木萨尔县| 房产| 环江| 通辽市| 关岭| 光泽县| 连城县| 青阳县| 兴仁县| 衡山县| 定陶县| 玉龙| 宣武区| 田阳县| 老河口市|