摘要:發(fā)展現(xiàn)代農(nóng)業(yè),將農(nóng)業(yè)融入互聯(lián)網(wǎng)技術(shù)中,可以開拓農(nóng)業(yè)發(fā)展的新領(lǐng)域。本文從網(wǎng)站的功能分析、數(shù)據(jù)庫設(shè)計及關(guān)鍵功能的實現(xiàn)技術(shù)詳細(xì)介紹了下蜀農(nóng)業(yè)信息網(wǎng)設(shè)計的全過程。
關(guān)鍵詞:下蜀;農(nóng)業(yè)信息網(wǎng);MVC;數(shù)據(jù)庫;Ajax
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)35-0003-03
1 概述
在中國這個文明古國,農(nóng)業(yè)是主要產(chǎn)業(yè)之一,當(dāng)農(nóng)業(yè)與互聯(lián)網(wǎng)產(chǎn)生交集,農(nóng)業(yè)將被帶入一個新的時代,煥發(fā)新的生機(jī)。隨著社會的進(jìn)步和互聯(lián)網(wǎng)產(chǎn)業(yè)的高速發(fā)展,傳統(tǒng)產(chǎn)業(yè)一農(nóng)業(yè)也有了長足的發(fā)展,為了滿足地區(qū)農(nóng)業(yè)的發(fā)展需要,農(nóng)業(yè)地區(qū)的大量信息迫切需要引起社會投資者的廣泛關(guān)注,這些信息需要一個發(fā)布平臺,使得地區(qū)可以走出去展開來吸引更多的外來機(jī)遇,所以,需要開發(fā)一個適合地區(qū)農(nóng)業(yè)信息發(fā)展的農(nóng)業(yè)信息網(wǎng),特別是方便易用的后臺管理要能滿足信息化普及程序不高的農(nóng)村用戶。在開發(fā)之前,積極與下蜀相關(guān)部門負(fù)責(zé)人聯(lián)系,了解下蜀地區(qū)的概況、發(fā)展現(xiàn)狀和需求,從而進(jìn)行詳細(xì)的信息網(wǎng)需求分析,以明確該網(wǎng)站所要實現(xiàn)的各項功能。
2 網(wǎng)站功能及可行性分析
下蜀農(nóng)業(yè)信息網(wǎng)的功能主要集中在信息展示及信息檢索方面,同時在用戶模塊方面有評論管理的功能,還有用戶的信息管理模塊。而在后臺有各類信息的管理模塊,地區(qū)介紹的管理模塊,產(chǎn)品管理模塊,區(qū)域特色管理模塊,還有在線評論的管理模塊。這些功能管理模塊都是支撐網(wǎng)站的核心
前臺的各類信息展示要是用來分塊展示各類信息模塊,如:農(nóng)業(yè)新聞、農(nóng)業(yè)資訊、區(qū)域展示、農(nóng)產(chǎn)品展示等;信息檢索模塊主要是實現(xiàn)用戶根據(jù)老百姓檢索需要的各類信息;用戶登錄后可對各類信息發(fā)表自己的意見或見解等,它們有多級的關(guān)聯(lián)查詢,還有基于JavaScript語言的邏輯業(yè)務(wù)代碼,具有復(fù)雜的業(yè)務(wù)邏輯,是信息類網(wǎng)站的核心業(yè)務(wù)代碼模塊,可行性高,功能實現(xiàn)后的進(jìn)一步修改不大便可擴(kuò)充其他功能,主要就是加固代碼,以代碼穩(wěn)定性為前提。
后臺的業(yè)務(wù)代碼主要就是繁雜的業(yè)務(wù)添加代碼和查詢代碼,是可行性中級的業(yè)務(wù)模塊,后臺的信息添加關(guān)乎前臺頁面的展示,后臺的功能是實現(xiàn)對全部前臺展示信息的類型,具體信息的管理(增加、刪除、修改、查詢),如果后臺業(yè)務(wù)出現(xiàn)問題的話,前臺的網(wǎng)站,將是一個空架子,也就失去了設(shè)計之初追尋的設(shè)計原則,簡潔并且高效,數(shù)據(jù)插入將只能依靠數(shù)據(jù)庫的手動插入,失去了靈活性,同時變得異常低效。因此,后臺的代碼模塊更關(guān)鍵的在于完整和穩(wěn)定性,它是支撐網(wǎng)站運(yùn)行的有力保障。
3 數(shù)據(jù)庫設(shè)計
設(shè)計數(shù)據(jù)庫表的時候,需要對應(yīng)下蜀農(nóng)業(yè)信息網(wǎng)的功能需求設(shè)計出相應(yīng)的實體,然后再對實體進(jìn)一步細(xì)化,充分考慮表與表之間的關(guān)系,設(shè)計出相應(yīng)的數(shù)據(jù)表及每個表的字段,且簡明不能有冗余字段。結(jié)合下蜀農(nóng)業(yè)信息網(wǎng)的業(yè)務(wù)流可設(shè)計出該信息網(wǎng)的數(shù)據(jù)操作流程圖如圖1所示,主要需要七張數(shù)據(jù)表來記錄相關(guān)數(shù)據(jù),下面簡要介紹幾個關(guān)鍵表的邏輯結(jié)構(gòu)。
3.1用戶信息表(User)
該表是用來存儲用戶基本信息的表,包括用戶名、用戶密碼、狀態(tài)、注冊時間等多個關(guān)于用戶信息的字段,如表1所示。
3.2文章表(News)
該表是用來存儲網(wǎng)站內(nèi)所有文章信息的表,包括文章的標(biāo)題、文章正文、文章的類型編號(該字段有對應(yīng)類型表)、相關(guān)的圖片、發(fā)表的時間等多個關(guān)于文章信息的字段,如表2所示。
3.3文章評論表(Review)
該表是用來存儲用戶對當(dāng)前網(wǎng)站內(nèi)所有文章的評論信息的表,包括評論時間、評論內(nèi)容、被評論文章編號、評論用戶ID等多個關(guān)于文章評論信息的字段,如表3所示。
3.4區(qū)域介紹表(lntroduce)
該表是用來存儲下蜀地區(qū)有信息發(fā)布需求的區(qū)域信息表,包括區(qū)域名稱、區(qū)域介紹、代表圖片等多個區(qū)域信息的字段,如表4所示。
3.5區(qū)域特色表(Feature)
該表是用來存儲地區(qū)內(nèi)相關(guān)特色信息的表,包括地區(qū)編號、特色名稱、特色介紹、相關(guān)圖片等多個關(guān)于區(qū)域特色信息的字段,如表5所示。
以上是下蜀農(nóng)業(yè)信息網(wǎng)用到的幾個關(guān)鍵數(shù)據(jù)表,沒有過多的冗余字段并且遵從了數(shù)據(jù)庫設(shè)計的三大范式,表與表之間通過主鍵、外鍵進(jìn)行關(guān)聯(lián),有效地提升了本信息網(wǎng)的數(shù)據(jù)存儲與使用效率。
4 關(guān)鍵功能及代碼分析
4.1異步刷新
在網(wǎng)頁設(shè)計中有一種很重要的效果是異步刷新。當(dāng)網(wǎng)頁中有很多信息,但并不需要在某一時刻全部加載,而且一次性全部加載的時候就會造成網(wǎng)頁非常的卡;或者在頁面中有局部需要更新數(shù)據(jù)。為了解決這些問題,異步響應(yīng)就應(yīng)運(yùn)而生了。每次就只加載一部分,加載完后再加載其他部分,這樣網(wǎng)頁就不會一直在空白頁面旋轉(zhuǎn),而是會先加載出一部分,展示給用戶看。實現(xiàn)這種效果就需要使用Ajax語言來實現(xiàn),這種語言是專門實現(xiàn)異步和同步的效果,下面就是網(wǎng)站注冊用戶的用戶名是否有效的校驗代碼:
$.post("${pageContext. request.contextPath}/ajax/validateUser-name",{"userName":username},
function(message){
$("#usernameMessage").text(message);
$("#usernameMessage").css({"color":"red","font-size":"15px","font-weight":"hold"}););
});
4.2分頁查詢和關(guān)聯(lián)查詢
下蜀農(nóng)業(yè)信息網(wǎng)的查詢功能中,由于有很多的文章信息,為了不過度占用系統(tǒng)資源,提高頁面加載效率,就不能一次性的將新聞全查出來,而是每次只查當(dāng)前顯示需要的幾條數(shù)據(jù)。這樣在設(shè)計查詢語句時就要充分考慮到每頁記錄條數(shù)的查詢條件及當(dāng)前頁數(shù),關(guān)鍵實現(xiàn)代碼如下:
selectfrom news n left join news-type nt on n.news-type-id=nt.id where 1=1and nt.id=#{newsTypeId}and n.createtime like CONCAT('%',$(year},'%')and n.createtime like'%${newsTime}%'and nt.name like'%${keyWord}%&aposor nt.detail like'%${keyWord}%'or n.content like'%$(keyWord}%'or n.newstitle like'%$(keyWord}%'limit#{startNum},#{pageSize}
4.3圖片上傳
無論是文章信息還地區(qū)或區(qū)域特色介紹都離不開圖片的展示,因此,圖片上傳是下蜀農(nóng)業(yè)信息網(wǎng)后臺管理的必須且重要的功能。在頁面中form表單提交的方式必須是post,請求和傳輸?shù)姆绞奖仨毷莈nctype="multipart/form—data"類型的參數(shù),否則會報文件類型異常,在controller中對傳過來的文件做處理,首先通過getOriginalFilename()方法獲得文件的路徑,然后和上傳的文件所存路徑拼接起來,就能將文件保存指定的文件夾中,關(guān)鍵實現(xiàn)代碼如下:
@RequestMapping("/addNews2")
public String addNews2(News news,Integer newsTypeId,@Re-questParam("imagefile")CommonsMultipanFile file,HttpSessionsession)throws Exception{
ServletContext application=session.getServletContext();
System.out.println("路徑:"+application.getRealPath("up-load"));
System.out.println(fle.getOriginalFilename());
System.out.println();
if("".equals(file.getOriginalFilename())){
news.setImage("");
}else{
String uploadDir=application.getRealPath("upload");
file.transferTo(new File(uploadDir,file.getOriginalFilename()));
news.setlmage("upload/"+file.getOriginalFilename());
}
newsService.addNews(news,newsTypeld);
return"redirect:/news/findNews"; }
5 結(jié)論
綜上所述,本文詳細(xì)闡述了基于Java語言、Tomcat服務(wù)器,以MyEclipse為開發(fā)工具、MySQL為數(shù)據(jù)存儲庫結(jié)合SpringM-vc技術(shù)如何來開發(fā)下蜀農(nóng)業(yè)信息網(wǎng)。該信息網(wǎng)介紹了下蜀地區(qū)的風(fēng)土人情、農(nóng)產(chǎn)品信息、特色經(jīng)濟(jì)、農(nóng)業(yè)資訊及農(nóng)村區(qū)域特色,為外界認(rèn)識下蜀、了解下蜀提供了實時、準(zhǔn)確的官方窗口,同時也為下蜀地區(qū)的農(nóng)業(yè)信息化和社會主義新農(nóng)村建設(shè)提供重要信息支撐平臺。
參考文獻(xiàn):
[1]Java設(shè)計模式深入研究,劉德山,金百東編著[M].北京:人民郵電出版社,2014.7
[2]SQL Server 2005從入門到精通(應(yīng)用技術(shù)基礎(chǔ))/微軟技術(shù)叢書Solid Quality Learning著[M].王為譯出版社:清華大學(xué)出版社
[3]劉衛(wèi)權(quán).江蘇鹽城農(nóng)業(yè)信息化建設(shè)研究[D].湖南農(nóng)業(yè)大學(xué),2017.
[4]孫少寧,尹寶全,孫芳.農(nóng)業(yè)信息化教育網(wǎng)站平臺的建設(shè)與研究[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2015(09):53-56.
【通聯(lián)編輯:王力】
收稿日期:2019-09-10
作者簡介:張金鳳(1978-),女,江蘇泰興人,講師,碩士,主要從事計算機(jī)應(yīng)用方向研究。