999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于J2EE自動站數(shù)據(jù)查詢系統(tǒng)設(shè)計與實現(xiàn)

2016-04-11 02:44:34樊潔馨
陜西氣象 2016年2期

樊潔馨

(寧強(qiáng)縣氣象局,陜西寧強(qiáng) 724400)

?

基于J2EE自動站數(shù)據(jù)查詢系統(tǒng)設(shè)計與實現(xiàn)

樊潔馨

(寧強(qiáng)縣氣象局,陜西寧強(qiáng)724400)

摘要:基于J2EE開發(fā)技術(shù)和現(xiàn)有數(shù)據(jù)庫環(huán)境,采用MVC(Model-View-Controller)設(shè)計模式,開發(fā)自動站數(shù)據(jù)查詢系統(tǒng),實現(xiàn)了以網(wǎng)頁方式為用戶提供漢中市各縣區(qū)溫度、降水量數(shù)據(jù)查詢及圖形顯示等功能。

關(guān)鍵詞:自動站數(shù)據(jù); J2EE;自動站數(shù)據(jù)查詢

自動站數(shù)據(jù)查詢業(yè)務(wù)系統(tǒng)在基層氣象工作中占有重要地位,不僅能及時有效地為工作人員提供自動站觀測業(yè)務(wù)信息,還可以為開展氣象服務(wù)提供高效的數(shù)據(jù)保障。根據(jù)J2EE技術(shù)特點,設(shè)計開發(fā)了適合市縣使用的自動站數(shù)據(jù)查詢系統(tǒng),該系統(tǒng)操作便捷,數(shù)據(jù)顯示直觀,且易于維護(hù)和功能擴(kuò)展。本文介紹系統(tǒng)的研發(fā)思路及所用到的開發(fā)技術(shù),供相關(guān)技術(shù)人員參考。

1開發(fā)語言及工具

J2EE(Java 2 Platform,Enterprise Edition)是一個為大企業(yè)主機(jī)級的計算類型而設(shè)計的Java平臺,它簡化了應(yīng)用程序的開發(fā),具有可伸縮性、靈活性、易維護(hù)等優(yōu)點;Eclipse 是一個開放源代碼的基于Java的可擴(kuò)展開發(fā)平臺,它為編程開發(fā)提供了一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境;MyEclipse是一個用于開發(fā)J2EE的插件集合,其功能強(qiáng)大,支持廣泛。

2軟件運行環(huán)境

服務(wù)器端軟件環(huán)境為JDK8、Tomcat6.0;數(shù)據(jù)庫為SQLServer2008;客戶端軟件環(huán)境為IE8.0以上;支持環(huán)境為windowsXP/Windows 7/Windows 8。

3系統(tǒng)主要功能

實現(xiàn)任意時段內(nèi)自動站小時平均氣溫、最高(最低)氣溫及出現(xiàn)時間、降水量等要素記錄查詢;統(tǒng)計該時段內(nèi)平均溫度、最高(低)氣溫、總降水量;顯示并輸出該時段內(nèi)溫度變化曲線圖和降水量柱狀圖。

4具體實現(xiàn)

4.1主頁功能

在index.jsp頁面,主要進(jìn)行查詢時段、臺站范圍、查詢要素選擇,運用JSP、JavaScript將所選信息提交至ZDZServlet.java頁面處理。

(1) index.jsp頁面嵌套技術(shù)

運用JSP頁面嵌套方式,將查詢信息選擇頁面left.jsp嵌套至主頁index.jsp頁面中。index.jsp頁面不進(jìn)行業(yè)務(wù)邏輯處理,而將處理程序放置于left.jsp頁面,減少了index.jsp頁面的代碼量,并提高了代碼的利用率與可移植性。

實現(xiàn)方式:

(2) left.jsp數(shù)據(jù)提交及時間插件使用技術(shù)

查詢信息選擇頁面left.jsp,運用HTML語言編寫,使用“form”表單中“post”方法提交數(shù)據(jù)至ZDZServlet.java,用于下一步數(shù)據(jù)處理。為方便、直觀地選擇所要查詢的時間范圍,“時間”選項使用“My97DatePicker”日歷插件來實現(xiàn)。將“My97DatePicker”文件導(dǎo)入至工程中,然后使用標(biāo)簽將其引入,并根據(jù)該插件所提供的方法,按需求進(jìn)行調(diào)用。

實現(xiàn)方式:

4.2數(shù)據(jù)庫查詢

以查詢?nèi)恳貫槔\用ConnDB.java、ZDZDataBean.java、ZDZDataBO.java、right.jsp、 ZDZServlet.java來進(jìn)行數(shù)據(jù)處理。ConnDB.java主要進(jìn)行數(shù)據(jù)庫鏈接;ZDZDataBean.java主要進(jìn)行對所需要查詢元素get、set方法的封裝;ZDZDataBO.java主要進(jìn)行數(shù)據(jù)庫查詢;ZDZServlet.java主要進(jìn)行數(shù)據(jù)的處理與傳遞;right.jsp主要進(jìn)行查詢結(jié)果的顯示。

(1) ConnDB.java連接數(shù)據(jù)庫技術(shù)。ConnDB.java用于數(shù)據(jù)庫的鏈接,在編寫該方法前,應(yīng)在本工程中導(dǎo)入與SQL數(shù)據(jù)庫相關(guān)的sqljdbc4.jar包。

(2)ZDZDataBean.java技術(shù)。ZDZDataBean. java封裝所要調(diào)取元素的get、set方法,使其他類可以調(diào)用(設(shè)置和獲取)該方法。

(3) ZDZDataBO.java數(shù)據(jù)查詢技術(shù)。ZDZDataBO.java用于數(shù)據(jù)庫查詢,實現(xiàn)根據(jù)時間范圍與區(qū)站號進(jìn)行數(shù)據(jù)記錄數(shù)(即數(shù)據(jù)顯示頁碼數(shù)量)的統(tǒng)計、平均溫度、最高(低)溫度、總降水量的統(tǒng)計和查詢結(jié)果的分頁顯示。

實現(xiàn)方式:

①根據(jù)所給出的時間范圍與區(qū)站號查詢得到數(shù)據(jù)記錄總條數(shù),按照系統(tǒng)設(shè)置的每頁顯示記錄條數(shù)計算出顯示的頁數(shù)。

select count(*) from tabtimedata where ObservTimes between ’"+timesta+"’and ’"+timeend+"’and StationNum=’"+stationnum+"’

if(rs.next()){

rowCount=rs.getInt(1);

}if(rowCount%pageSize==0){

pageCount=rowCount/pageSize;

}else{

pageCount=rowCount/pageSize+1;

}

其中,stationnum為區(qū)站號,timesta為開始時間值,timeend為結(jié)束時間值,pageSize為每頁顯示數(shù)據(jù)條數(shù),rowCount為紀(jì)錄總條數(shù),pageCount為頁數(shù),tabtimedata 為數(shù)據(jù)庫名,ObservTimes、StationNum分別為數(shù)據(jù)庫中觀測時間字段名以及區(qū)站號字段名。

②根據(jù)所給出的時間范圍與區(qū)站號查詢出當(dāng)前頁碼下的全部數(shù)據(jù)。

select top "+pageSize+" * from tabtimedata where ObservTimes between ’"+timesta+"’and ’"+timeend+"’and StationNum=’"+stationnum+"’ and ObservTimes not in (select top " +""+pageSize*(pageNow-1)+" ObservTimes from tabtimedata where ObservTimes between ’"+timesta+"’and ’"+timeend+"’and StationNum=’"+stationnum+"’Order By ObservTimes ) Order By ObservTimes

其中,pageNow為當(dāng)前頁碼值,且pageNow≥1。

③根據(jù)所給出的時間范圍與區(qū)站號分別查詢統(tǒng)計出該時間范圍內(nèi)的平均溫度、最高(低)溫度、總降水量。以平均溫度統(tǒng)計為例,查詢語句如下:

select avg(convert(float,DryBulTemp)) from tabtimedata where ObservTimes between ’"+timesta+"’and ’"+timeend+"’and StationNum=’"+stationnum+"’

其中DryBulTemp為數(shù)據(jù)庫中溫度字段名。

(4)ZDZServlet.java中要素值查詢、處理技術(shù)。ZDZServlet.java用于網(wǎng)頁參數(shù)的接收、處理,并將處理過的數(shù)據(jù)返回到所要顯示的頁面。

實現(xiàn)方法:

public class ZDZServlet extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//1.接收網(wǎng)頁傳遞過來的數(shù)據(jù)

String stationnum=request.getParameter("stationnum");

String date1=request.getParameter("date1");

String date2=request.getParameter("date2");

//2.調(diào)用ZDZDataBO.java中方法查詢數(shù)據(jù)并處理

ZDZDateBO zbo=new ZDZDateBO();

double temp=zbo.getZDZAVGTEMP(stationnum, time1, time2);

String avgtemp=String.valueOf(temp);

//3.將處理后的數(shù)據(jù)再傳遞回網(wǎng)頁

request.setAttribute("avgtemp", avgtemp);

request.getRequestDispatcher("right.jsp").forward(request, response);}

}

(5)right.jsp中顯示統(tǒng)計值技術(shù)。right.jsp將ZDZServlet.java 所傳遞過來的值接收并進(jìn)行格式化處理,然后通過表格的方式顯示出結(jié)果。

實現(xiàn)方法:

<%float avgtemp=Float.parseFloat((String)request.getAttribute("avgtemp"));

float temp2=(float)(Math.round(avgtemp))/10;%>

平均溫度:<%=temp2%>℃

4.3要素分頁顯示

以查詢?nèi)恳貫槔\用right.jsp、ZDZServlet.java、ZDZDataBO.java來實現(xiàn)。right.jsp頁面主要用于參數(shù)的傳遞與顯示,ZDZServlet.java主要用于參數(shù)的傳遞與處理,ZDZDataBO.java主要進(jìn)行頁面總數(shù)的查詢計算以及數(shù)據(jù)的分頁查詢。

(1) right.jsp中分頁技術(shù)。right.jsp頁面中運用超鏈接的方式進(jìn)行參數(shù)的傳遞,若當(dāng)前頁面不為第一頁時,可顯示上一頁,當(dāng)前頁面不為最后一頁時,顯示下一頁,頁碼值通過調(diào)用ZDZDataBO.java中的方法計算出頁碼總數(shù),并通過for循環(huán)來輸出顯示。

(2)ZDZServlet.java中分頁技術(shù)。ZDZServlet. java通過調(diào)用ZDZDataBO.java中的方法來進(jìn)行分頁查詢,并將結(jié)果傳遞至right.jsp頁面進(jìn)行顯示。

4.4要素圖形顯示

將查詢到的數(shù)據(jù),通過插件提供的方法轉(zhuǎn)換為圖形,并顯示輸出。圖形顯示應(yīng)用了“ChartDirector”插件,需在編寫程序前導(dǎo)入ChartDirector.jar包與該插件提供的getchart.jsp文件,并配置web.xml文件。

以溫度變化曲線圖為例,運用tempmap.jsp、ZDZServlet.java、ZDZDataBO.java來實現(xiàn)。tempmap.jsp主要進(jìn)行數(shù)據(jù)處理和圖像顯示,ZDZServlet.java、 ZDZDataBO.java主要用于數(shù)據(jù)查詢和結(jié)果傳遞。

tempmap.jsp圖形顯示技術(shù)的實現(xiàn)方法:

<%//1.將查詢到的數(shù)據(jù)進(jìn)行處理

ArrayList al = (ArrayList) request.getAttribute("infos");

double temp=0;

double[] data0= new double[al.size()];

String timex;

String[] labels=new String[al.size()];

for(int j=0;j

ZDZDataBean zb=(ZDZDataBean)al.get鄭馳,唐萱,劉元珺. 觀測資料實時備份的實現(xiàn)[J].陜西氣象,2016(2):41-42.

(j);

temp=zb.getDRYBULTEMP();

timex=zb.getOBSERVTIMES().substring(6,10);

//2.將處理后的數(shù)據(jù)寫入到插件提供的數(shù)組中

data0[j] = Math.round(temp)/10.0;

labels[j]= timex;

}%>

//3.顯示圖形

usemap="#map1" border="0">

<%=imageMap1%>

5結(jié)語

該系統(tǒng)經(jīng)在業(yè)務(wù)中試用,運行正常、穩(wěn)定,能基本滿足基層臺站業(yè)務(wù)人員對溫度、降水等常規(guī)氣象資料的日常訪問要求,提高了自動站數(shù)據(jù)應(yīng)用能力。隨著業(yè)務(wù)的進(jìn)一步發(fā)展和服務(wù)需要的進(jìn)一步提升,將對系統(tǒng)內(nèi)容和功能做更深入地完善。

參考文獻(xiàn):

[1]武延軍,黃飛躍.精通JSP編程技術(shù)[M].北京:人民郵電出版社,2001.

[2]陳海山.深入Java Servlet網(wǎng)絡(luò)編程[M].北京:清華大學(xué)出版社,2002.

[3]Phil Hanna.JSP技術(shù)大全[M].北京:機(jī)械工業(yè)出版社, 2002.

[4]Karl Moss.Java Servlet開發(fā)人員指南[M].北京:清華大學(xué)出版社,2002.

中圖分類號:TP311.52

文獻(xiàn)標(biāo)識碼:B

基金項目:陜西省氣象局科技成果應(yīng)用與推廣項目(多普勒雷達(dá)PUPC運行監(jiān)控系統(tǒng)推廣(2014T-8))

作者簡介:樊潔馨(1990—),女,漢族,陜西漢中人,助工,學(xué)士,主要從事縣級綜合業(yè)務(wù)。

收稿日期:2015-10-13

文章編號:1006-4354(2016)02-0038-04

主站蜘蛛池模板: 五月激情综合网| 在线视频亚洲色图| 在线看片免费人成视久网下载| 精品国产www| 波多野结衣在线se| 色老头综合网| 国产精品手机视频一区二区| 91年精品国产福利线观看久久| 黄色免费在线网址| 青青草原国产| 美女一级毛片无遮挡内谢| 国产成年女人特黄特色大片免费| 国产一级毛片网站| 亚洲免费黄色网| 日韩精品一区二区三区免费在线观看| 在线观看国产精美视频| 精品91在线| 国产精品美女自慰喷水| 亚洲视频三级| 亚洲制服丝袜第一页| 国产剧情一区二区| 女人毛片a级大学毛片免费| 伊人大杳蕉中文无码| 野花国产精品入口| 国产精品一区二区久久精品无码| 麻豆AV网站免费进入| 欧美人与性动交a欧美精品| 亚洲女同一区二区| 亚洲美女视频一区| 热思思久久免费视频| 久久永久免费人妻精品| 久久综合一个色综合网| 日本欧美中文字幕精品亚洲| 国产专区综合另类日韩一区| 麻豆精品在线播放| 97国产在线观看| 一级一级一片免费| 亚洲第一在线播放| 中国丰满人妻无码束缚啪啪| 激情爆乳一区二区| 91人妻日韩人妻无码专区精品| 青青青视频91在线 | 婷婷亚洲视频| 亚洲精品无码久久毛片波多野吉| 欧美午夜小视频| 免费观看精品视频999| 亚洲精品综合一二三区在线| 天堂亚洲网| 国产永久在线视频| 亚瑟天堂久久一区二区影院| 日本少妇又色又爽又高潮| 国产迷奸在线看| 欧美日韩中文字幕二区三区| 国产成人综合久久精品下载| 日日摸夜夜爽无码| 天堂亚洲网| 少妇被粗大的猛烈进出免费视频| 精品91视频| 亚洲精品片911| 亚洲天堂久久| 国产精品久线在线观看| 国产一级α片| 亚洲综合中文字幕国产精品欧美 | 免费观看欧美性一级| 2024av在线无码中文最新| 天堂成人av| 国产91视频免费观看| 人妻21p大胆| 亚洲Av综合日韩精品久久久| 亚洲毛片在线看| 91亚洲视频下载| 国产精品区视频中文字幕| 亚洲精品午夜天堂网页| 女同国产精品一区二区| 国产精品精品视频| 成人午夜网址| 国产精品3p视频| 欧美日韩动态图| 国产在线无码av完整版在线观看| 亚洲高清中文字幕在线看不卡| 欧美成人国产| 热久久综合这里只有精品电影|