国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

利用BeX5平臺(tái)實(shí)現(xiàn)與后臺(tái)數(shù)據(jù)庫(kù)的交互應(yīng)用

2017-07-05 17:32張澤恩
電子技術(shù)與軟件工程 2017年12期

張澤恩

摘 要本文以軟件開(kāi)發(fā)為手段,解決當(dāng)前頭臺(tái)公司在數(shù)據(jù)利用方面所面臨的問(wèn)題。利用BeX5平臺(tái)搭建前臺(tái)界面和組織架構(gòu),實(shí)現(xiàn)可視化操作和精確權(quán)限控制,解決用戶不會(huì)使用SQL查詢語(yǔ)句和數(shù)據(jù)訪問(wèn)權(quán)限混亂的現(xiàn)狀,整體提升公司數(shù)據(jù)利用水平。

【關(guān)鍵詞】BeX5平臺(tái) 數(shù)據(jù)利用 權(quán)限控制

1 研究背景

隨著油田公司A2、A5等項(xiàng)目的深入推廣,對(duì)我們數(shù)據(jù)利用提出了更高的要求,涉及到的人員也越來(lái)越多,不同系統(tǒng)對(duì)口人員需要訪問(wèn)的數(shù)據(jù)也皆不相同。現(xiàn)階段通過(guò)PL/SQL軟件直接訪問(wèn)數(shù)據(jù)庫(kù),雖然能夠滿足我們的需要,但在使用過(guò)程中存在兩個(gè)問(wèn)題:

(1)PL/SQL需要通過(guò)命令來(lái)實(shí)現(xiàn)數(shù)據(jù)操控,要求操作人員必須掌握SQL語(yǔ)句,而實(shí)際情況大部分員工沒(méi)有這個(gè)基礎(chǔ)。

(2)數(shù)據(jù)庫(kù)使用人員都是通過(guò)公共用戶cy12登錄數(shù)據(jù)庫(kù),對(duì)訪問(wèn)權(quán)限管理模糊,可能造成用戶越權(quán)查看的情況。

2 解決方案選擇

2.1 需求分析

(1)為用戶提供簡(jiǎn)潔明了的可視化數(shù)據(jù)操作界面。將用戶常用的增、刪、改、查、電子表格導(dǎo)入、導(dǎo)出等工作必需的功能以更簡(jiǎn)潔的方式提供給用戶,不需要掌握SQL語(yǔ)句,降低門檻。

(2)實(shí)現(xiàn)前臺(tái)界面調(diào)用存儲(chǔ)過(guò)程和傳遞參數(shù),數(shù)據(jù)處理一鍵完成。

(3)優(yōu)化細(xì)分權(quán)限結(jié)構(gòu),根據(jù)用戶崗位分配數(shù)據(jù)權(quán)限,避免用戶越權(quán)查詢。

2.2 解決思路

利用BeX5平臺(tái)構(gòu)建UI界面來(lái)展示數(shù)據(jù),通過(guò)按鈕和組件觸發(fā)JS代碼實(shí)現(xiàn)增、刪、改、查、數(shù)據(jù)篩選、excel導(dǎo)入和導(dǎo)出;直接在前臺(tái)實(shí)現(xiàn)數(shù)據(jù)處理,前臺(tái)過(guò)于臃腫,處理效率低,系統(tǒng)運(yùn)行緩慢,因此采用數(shù)據(jù)庫(kù)中編寫(xiě)存儲(chǔ)過(guò)程,前臺(tái)傳參、調(diào)用的方式;通過(guò)權(quán)限、角色、用戶建立公司組織架構(gòu),賦予員工獨(dú)立賬戶和應(yīng)有權(quán)限。

2.3 選用BeX5平臺(tái)優(yōu)勢(shì)和主要原因

(1)提供完全可視化、組件化開(kāi)發(fā)環(huán)境,能實(shí)現(xiàn)快速開(kāi)發(fā)應(yīng)用。

(2)BeX5平臺(tái)為公司已購(gòu)軟件,無(wú)需其它額外費(fèi)用。

(3)平臺(tái)已經(jīng)上線多個(gè)自建系統(tǒng),擁有公司完整的組織架構(gòu)。

3 方案實(shí)施難點(diǎn)和問(wèn)題

3.1 調(diào)整數(shù)據(jù)庫(kù)表結(jié)構(gòu)

想實(shí)現(xiàn)BeX5平臺(tái)和數(shù)據(jù)庫(kù)交互,訪問(wèn)數(shù)據(jù)庫(kù)是前提和基礎(chǔ)。使用BeX5平臺(tái)獲取數(shù)據(jù)時(shí)遇到問(wèn)題,原因?yàn)槿鄙賰蓚€(gè)重要字段。

3.1.1 行ID

平臺(tái)需要一個(gè)單獨(dú)字段作為行ID,oracle數(shù)據(jù)庫(kù)自身會(huì)為每條數(shù)據(jù)創(chuàng)建一個(gè)rowid,但平臺(tái)不能獲取,添加數(shù)據(jù)項(xiàng)fID作為平臺(tái)識(shí)別的行ID。

3.1.2 缺少version(版本)

BeX5利用字段version來(lái)解決并發(fā)沖突,反向映射數(shù)據(jù)后,必須增加字段version,默認(rèn)值0。

3.2 存儲(chǔ)過(guò)程調(diào)用

實(shí)現(xiàn)前、后臺(tái)交互,就是BeX5界面發(fā)出的指令,數(shù)據(jù)庫(kù)能夠接受并領(lǐng)會(huì)意圖從而執(zhí)行相應(yīng)操作。但是工作中所碰到的數(shù)據(jù)處理工作并非簡(jiǎn)單的幾句SQL語(yǔ)句即可完成,而是需要大量的SQL語(yǔ)句組成一個(gè)語(yǔ)句集去實(shí)現(xiàn)復(fù)雜算法,即存儲(chǔ)過(guò)程。用戶通過(guò)指定存儲(chǔ)過(guò)程的名字并給出參數(shù)(如果該存儲(chǔ)過(guò)程帶有參數(shù))來(lái)執(zhí)行它,那么調(diào)用存儲(chǔ)過(guò)程就等于執(zhí)行一個(gè)能夠?qū)崿F(xiàn)復(fù)雜算法的SQL語(yǔ)句集。

BeX5平臺(tái)前端UI基于html5+css3+js,后端采用JavaEE標(biāo)準(zhǔn)體系,主流可靠。因此,由用戶頁(yè)面(JavaScript語(yǔ)言)調(diào)用自定義Action(Java語(yǔ)言),再調(diào)用oracle數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程(SQL語(yǔ)言),解決調(diào)用數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程的問(wèn)題。

3.3 參數(shù)傳遞

存儲(chǔ)過(guò)程執(zhí)行的過(guò)程中,參數(shù)的動(dòng)態(tài)變化可以告訴計(jì)算機(jī)我們的具體意圖,實(shí)現(xiàn)存儲(chǔ)過(guò)程的重用。以信息室為例,每個(gè)月都需要執(zhí)行存儲(chǔ)過(guò)程處理當(dāng)月井史,為每個(gè)月都編寫(xiě)一個(gè)特定存儲(chǔ)過(guò)程是不現(xiàn)實(shí)的,通過(guò)把年月作為參數(shù)傳遞給存儲(chǔ)過(guò)程解決以上問(wèn)題。

參數(shù)從用戶手中傳遞到后臺(tái)存儲(chǔ)過(guò)程需要多層傳遞:

(1)在用戶頁(yè)面上放置組件錄入?yún)?shù),再使用平臺(tái)封裝方法getValue()獲取參數(shù)值。

(2)使用param1.setString()方法將參數(shù)傳遞給Action。

(3)使用Java代碼調(diào)用相應(yīng)存儲(chǔ)過(guò)程,并將參數(shù)值傳遞給存儲(chǔ)過(guò)程。

至此,實(shí)現(xiàn)了將前臺(tái)用戶錄入的參數(shù)傳遞給oracle數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程。

3.4 異步處理

在實(shí)際應(yīng)用中,調(diào)用存儲(chǔ)過(guò)程導(dǎo)致用戶界面卡死。研究發(fā)現(xiàn)代碼為同步處理(順序執(zhí)行),執(zhí)行到存儲(chǔ)過(guò)程部分時(shí),由于數(shù)據(jù)量大、處理時(shí)間長(zhǎng),前臺(tái)長(zhǎng)時(shí)間接受不到反饋,系統(tǒng)會(huì)認(rèn)為當(dāng)前任務(wù)卡死,造成頁(yè)面未響應(yīng)。將代碼的執(zhí)行方式修改為異步處理(多線程執(zhí)行)解決以上問(wèn)題。

3.5 Excel導(dǎo)入導(dǎo)出

日常工作中需要大量使用Excel,實(shí)現(xiàn)表格的導(dǎo)入導(dǎo)出十分必要。大部分情況僅需導(dǎo)入其中部分?jǐn)?shù)據(jù),而不是全部導(dǎo)入,通過(guò)xml文件來(lái)控制不同情況的導(dǎo)入需求。

4 現(xiàn)階段應(yīng)用成果

解決以上主要技術(shù)問(wèn)題后,開(kāi)發(fā)完成《油田開(kāi)發(fā)數(shù)據(jù)管理系統(tǒng)》,實(shí)現(xiàn)了井史流程整改,系統(tǒng)主要功能模塊:

4.1 A2月報(bào)處理模塊

包含井史處理流程、數(shù)據(jù)加鎖、數(shù)據(jù)解鎖、井史處理、累計(jì)計(jì)算、打印井史等功能。

4.2 開(kāi)發(fā)數(shù)據(jù)分類匯總處理模塊

包含分類匯總和自定義匯總參數(shù)錄入、一鍵處理。支持從excel導(dǎo)入自定義井號(hào)、處理結(jié)果展示和導(dǎo)出為excel表格等。

4.3 井史及匯總數(shù)據(jù)查詢展示模塊

數(shù)據(jù)查詢模塊提供了油井井史查詢(井口)、油井井史查詢(總),水井井史查詢和分層注水井井史查詢功能,支持多條件篩選。

5 結(jié)論

利用X5平臺(tái)實(shí)現(xiàn)與后臺(tái)數(shù)據(jù)庫(kù)的交互,在前臺(tái)開(kāi)發(fā)平臺(tái)和后臺(tái)oracle數(shù)據(jù)庫(kù)間建立了一條橋梁,不僅限于現(xiàn)階段開(kāi)發(fā)成功的應(yīng)用,同時(shí)能夠?yàn)榻窈蟮拈_(kāi)發(fā)工作做技術(shù)積累。只要在數(shù)據(jù)控中可以通過(guò)SQL語(yǔ)句完成的數(shù)據(jù)操作都能通過(guò)以上技術(shù)實(shí)現(xiàn)前臺(tái)操作。

參考文獻(xiàn)

[1]明日科技.Java從入門到精通(第三版)[M].北京:清華大學(xué)書(shū)出版社,2012.

[2]Dacid Flanagan.李強(qiáng)等譯.JavaScript權(quán)威指南[M].北京:機(jī)械工業(yè)出版社,2011.

作者單位

大慶頭臺(tái)油田開(kāi)發(fā)有限責(zé)任公司 黑龍江省大慶市 166512