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

主站蜘蛛池模板: 99热亚洲精品6码| 国产精品成人一区二区不卡| 国产女人18水真多毛片18精品| 日本亚洲成高清一区二区三区| 97人人做人人爽香蕉精品| 亚洲 欧美 偷自乱 图片| 久久精品国产在热久久2019| 国产自视频| 亚洲第一成年人网站| 日韩AV无码免费一二三区| 亚洲av无码片一区二区三区| 免费人成网站在线观看欧美| 日韩在线欧美在线| 国产精品男人的天堂| 国产成人资源| 一本色道久久88| 欧美激情伊人| 97青草最新免费精品视频| 国产成人亚洲无吗淙合青草| 91精品专区| 亚洲精品卡2卡3卡4卡5卡区| 欧美成在线视频| 国产十八禁在线观看免费| 日韩毛片免费| 精品成人一区二区三区电影| 麻豆AV网站免费进入| 久久久久久国产精品mv| 亚洲午夜天堂| 亚洲成综合人影院在院播放| 在线看片国产| 欧美日韩在线国产| 先锋资源久久| a级毛片免费在线观看| 亚洲床戏一区| 久久精品国产精品青草app| 成人国产精品网站在线看| 日本尹人综合香蕉在线观看| 午夜毛片免费观看视频 | 亚洲狠狠婷婷综合久久久久| 久久香蕉国产线看观看精品蕉| 亚洲天堂首页| 91探花国产综合在线精品| 老司机aⅴ在线精品导航| 国产免费久久精品99re不卡 | 日韩精品无码不卡无码| 久久永久视频| 99ri国产在线| 亚洲欧美在线精品一区二区| 孕妇高潮太爽了在线观看免费| 亚洲水蜜桃久久综合网站| 免费在线看黄网址| 亚洲h视频在线| 亚洲天堂区| 国产午夜无码片在线观看网站| 在线观看欧美精品二区| 少妇露出福利视频| 成人一级黄色毛片| 青青草国产精品久久久久| 国产女同自拍视频| 操美女免费网站| 伊人久久久久久久| 国产精品污污在线观看网站| 免费中文字幕在在线不卡| 成人午夜久久| 亚洲制服丝袜第一页| 免费一级α片在线观看| 国产一级妓女av网站| 久久网欧美| 日本不卡视频在线| 亚洲成人一区二区| 久久久久久国产精品mv| 国产成人综合在线视频| 国产剧情无码视频在线观看| 高清乱码精品福利在线视频| 国产青榴视频在线观看网站| 中文字幕亚洲乱码熟女1区2区| 在线99视频| a级毛片免费网站| 99这里精品| 丰满人妻久久中文字幕| h视频在线播放| 国产精品内射视频|