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

基于web及riversql的數(shù)據(jù)庫(kù)管理方案

2015-12-05 08:27:07倪曼蒂馬建明
電子測(cè)試 2015年15期
關(guān)鍵詞:頁(yè)面數(shù)據(jù)庫(kù)功能

倪曼蒂,馬建明

(湖南商務(wù)職業(yè)技術(shù)學(xué)院 湖南長(zhǎng)沙,410205)

基于web及riversql的數(shù)據(jù)庫(kù)管理方案

倪曼蒂,馬建明

(湖南商務(wù)職業(yè)技術(shù)學(xué)院 湖南長(zhǎng)沙,410205)

出于安全考慮,將服務(wù)器所在網(wǎng)段與辦公電腦所在網(wǎng)段進(jìn)行隔離,卻為應(yīng)用系統(tǒng)的數(shù)據(jù)導(dǎo)入、導(dǎo)出等操作帶來(lái)不便。本文在riversql的基礎(chǔ)上,提出了一種基于web的數(shù)據(jù)庫(kù)管理方案,用于對(duì)各系統(tǒng)各類型數(shù)據(jù)庫(kù)的綜合管理。

數(shù)據(jù)庫(kù)管理;riversql

1 背景

隨著一年一度高招工作的臨近,高等院校網(wǎng)絡(luò)安全面臨新一輪考驗(yàn),其中一種常見(jiàn)方式為通過(guò)職工的機(jī)器間接地獲取信息。為了防止黑客再次通過(guò)這樣的手段攻擊服務(wù)器,可將服務(wù)器所在的網(wǎng)段與職工電腦所在的網(wǎng)段進(jìn)行隔離,以防止不法份子攻擊服務(wù)器,破壞或盜取相關(guān)的資料信息。而實(shí)際情況下,這樣的措施雖然提高了服務(wù)器的安全性和可靠性,卻為網(wǎng)絡(luò)中心的日常數(shù)據(jù)運(yùn)維帶來(lái)了不便,包括數(shù)據(jù)導(dǎo)入、導(dǎo)出,報(bào)表生成等。因此,我們希望能開(kāi)發(fā)一個(gè)工具來(lái)解決當(dāng)前的問(wèn)題。

2 功能設(shè)計(jì)

目前我院系統(tǒng)使用的數(shù)據(jù)庫(kù)包括mysql及ms sqlserver這兩種常用數(shù)據(jù)庫(kù),考慮到未來(lái)發(fā)展,這個(gè)數(shù)據(jù)庫(kù)管理工具需要支持mysql、ms sqlserver以及oracle等幾種常用的數(shù)據(jù)庫(kù)的基本操作,滿足對(duì)數(shù)據(jù)表的增、刪、查、改功能,并且對(duì)查詢結(jié)果進(jìn)行導(dǎo)出。另外,因?yàn)槭褂谜呖赡艽嬖谑褂貌划?dāng)?shù)那闆r,例如當(dāng)執(zhí)行了update,delete,add等更改功能時(shí),沒(méi)有點(diǎn)擊commit或rollback功能,這就會(huì)導(dǎo)致某個(gè)數(shù)據(jù)表行被鎖,因此,為了防止數(shù)據(jù)庫(kù)表不被鎖,當(dāng)用戶沒(méi)有提交事務(wù)或回滾而退出瀏覽器時(shí),直接回滾沒(méi)有提交的事務(wù),即當(dāng)session失效時(shí),我們將所有的沒(méi)有commit或rollback的功能進(jìn)行回滾操作。

3 實(shí)現(xiàn)原理

要完成對(duì)數(shù)據(jù)庫(kù)的管理,必定會(huì)面臨的幾個(gè)問(wèn)題,主要包括:如何獲取表字段名稱;如何獲取當(dāng)前schema下的表,視圖,存儲(chǔ)過(guò)程,函數(shù),包等;如何處理不同數(shù)據(jù)庫(kù)之間的差異。

在JDBC技術(shù)規(guī)范中,提供了Connection,Statement,ResultSet這三個(gè)開(kāi)發(fā)過(guò)程中常用的接口。針對(duì)每個(gè)接口,JDBC規(guī)范又提供了相應(yīng)的接口描述對(duì)象,也就是xxxMetaData描述對(duì)象。而在數(shù)據(jù)庫(kù)管理工具中,我們將會(huì)用到DatabaseMetaData和ResultSetMetaData,他們分別描述了數(shù)據(jù)庫(kù)的相關(guān)信息和結(jié)果集的相關(guān)信息。利用xxxMetaData描述對(duì)象,我們可以獲取到相應(yīng)的數(shù)據(jù)庫(kù)信息。但是由于不同的數(shù)據(jù)庫(kù)之間,還會(huì)存在差異,因此對(duì)于不同數(shù)據(jù)庫(kù)之間的特性,我們還需要通過(guò)查詢特定表來(lái)獲取相關(guān)的信息。

3.1 通過(guò)JDBC技術(shù)規(guī)范獲取數(shù)據(jù)庫(kù)信息

JDBC技術(shù)規(guī)范中提供了DatabaseMetaData類來(lái)訪問(wèn)數(shù)據(jù)庫(kù)信息。可通過(guò)如下代碼獲取到此類, 并且通過(guò)此類提供的方法獲取數(shù)據(jù)庫(kù)的相應(yīng)信息。

Connection con;

Con = DriverManager. getConnection ( url, username, password);

DatabaseMetaData dbmd=con.getMetaData ();

通過(guò)getTables方法獲取數(shù)據(jù)庫(kù)表名。此方法可返回結(jié)果集ResultSet,結(jié)果集中有5列,超出會(huì)報(bào)越界異常。

ResultSet DatabaseMetaData. getTables (String catalog, String schema, String tableName, String[ ] type)

通過(guò)getColumns方法獲取指定表的列信息。

ResultSet DatabaseMetaData getColumns (String catalog, String schema, String tableName, String columnName)

通過(guò)getPrimaryKeys得到指定表的主鍵信息:

ResultSet DatabaseMetaData getPrimaryKeys (String catalog, String schema, String tableName)

DatabaseMetaData類除了可以獲取以上所述的信息外,還可以獲取數(shù)據(jù)庫(kù)與用戶,數(shù)據(jù)庫(kù)標(biāo)識(shí)符以及函數(shù)與存儲(chǔ)過(guò)程;數(shù)據(jù)庫(kù)限制;架構(gòu)、編目、表、列和視圖等。

3.2 通過(guò)sql獲取數(shù)據(jù)庫(kù)的相應(yīng)信息

有些信息因?yàn)椴煌瑪?shù)據(jù)庫(kù)之間會(huì)存在著差異,因此對(duì)這些信息需要分開(kāi)處理,要獲取這些信息我們可以通過(guò)執(zhí)行sql的方式來(lái)獲取相應(yīng)的數(shù)據(jù)庫(kù)信息,下面將舉例說(shuō)明:

例1、獲取mysql和oracle的存儲(chǔ)過(guò)程

mysql:

"select routine_name from information_schema. routines

where routine_schema=? And routine_ type=’PROCEDURE’ order by 1 asc";

oracle:

final String sql="SELECT object_name, status, creater, last_ddl_time,timestamp"+

"FROM sys.all_objects where owner=?"+

"and object_type=’PROCEDURE’ order by 1 asc";

例2、獲取mysql和oracle的函數(shù)

mysql:

"select routine_name from information_schema. routines

where routine_schema=? And routine_type=’FUNCTION’order by 1 asc";

oracle:

final String sql="SELECT object_name, status, created, last_ddl_time,timestamp"+

"FROM sys.all_objects where owner=?"+

"and object_type=’ FUNCTION’ order by 1 asc";

4 實(shí)現(xiàn)方案

4.1 整體架構(gòu)

我們引入了riversql[3]開(kāi)源工具,并在其基礎(chǔ)上了實(shí)現(xiàn)了基于web的數(shù)據(jù)庫(kù)管理工具。主要功能包括數(shù)據(jù)結(jié)構(gòu)(表,存儲(chǔ)過(guò)程,視圖,觸發(fā)器等)查看、數(shù)據(jù)導(dǎo)出(支持CSV/Excel、PDF格式)。技術(shù)框架模型如圖1所示:

圖1 技術(shù)框架模型

展現(xiàn)層:基于jsp+extJs開(kāi)發(fā),可兼容大多數(shù)瀏覽器。

服務(wù)層:服務(wù)層中,riversql簡(jiǎn)單實(shí)現(xiàn)了自己的mvc框架,并沒(méi)有使用其他另外一些開(kāi)源框架。實(shí)現(xiàn)的方式,主要是根據(jù)傳入的action字符串,然后實(shí)例化需要執(zhí)行的類,每一個(gè)實(shí)例化的類執(zhí)行每一個(gè)動(dòng)作,從而實(shí)現(xiàn)controller的功能。

數(shù)據(jù)層:用jdbc直接執(zhí)行sql。

4.2 基于riversql的二次開(kāi)發(fā)

我們?cè)趓iversql的基礎(chǔ)上進(jìn)行了二次開(kāi)發(fā),強(qiáng)化了整體功能,改善傳輸效率、中文支持等,以滿足我們當(dāng)前實(shí)際的需求。

由于riversql是由外國(guó)人開(kāi)發(fā)的一個(gè)工具,開(kāi)發(fā)者并沒(méi)有考慮到中文的問(wèn)題,加上不同的中間件編碼以及extjs對(duì)傳輸?shù)木幋a設(shè)置都不盡相同。為了減少這種不同環(huán)境的配置的麻煩,我們引入了Base64編碼。在導(dǎo)出數(shù)據(jù)時(shí),我們先對(duì)頁(yè)面數(shù)據(jù)進(jìn)行編碼,然后再傳到后臺(tái)進(jìn)行解碼導(dǎo)出文件。

由于原先是將所有的數(shù)據(jù)顯示在頁(yè)面上,不利于我們查看數(shù)據(jù),也對(duì)瀏覽器的js解釋能力帶來(lái)負(fù)擔(dān),當(dāng)一次顯示的數(shù)據(jù)量比較大的時(shí)候,瀏覽器的響應(yīng)速度會(huì)比較慢。因此,我們將原來(lái)的數(shù)據(jù)顯示方式,改為分頁(yè)方式查看。

此方案導(dǎo)出數(shù)據(jù)的方式,如圖2所示:

圖2 數(shù)據(jù)導(dǎo)出

①在頁(yè)面上輸入sql語(yǔ)句,傳到后臺(tái)進(jìn)行查詢。

②后臺(tái)將查詢到的數(shù)據(jù),以報(bào)表形式返回到頁(yè)面上顯示。

③將頁(yè)面上的所有報(bào)表數(shù)據(jù)傳回后臺(tái),后臺(tái)對(duì)頁(yè)面上所顯示的報(bào)表數(shù)據(jù)進(jìn)行處理,生成特定格式(例如csv,pdf,excel等格式)的字節(jié)流。

④返回生成后的報(bào)表文件,供用戶下載。

根據(jù)以上分析,網(wǎng)絡(luò)間的傳輸數(shù)據(jù)量是最終得到數(shù)據(jù)的2倍。因此,當(dāng)數(shù)據(jù)量較大時(shí),第③、④步將導(dǎo)致網(wǎng)絡(luò)開(kāi)銷升高。因此,我們結(jié)合分頁(yè)功能對(duì)導(dǎo)出數(shù)據(jù)進(jìn)行改進(jìn)。改進(jìn)后的導(dǎo)出功能分兩種情況:

1)導(dǎo)出當(dāng)前分頁(yè)頁(yè)面數(shù)據(jù)時(shí),用回原來(lái)的導(dǎo)出方式進(jìn)行導(dǎo)出結(jié)果。這樣避免了對(duì)數(shù)據(jù)庫(kù)頻繁的執(zhí)行sql。

2)導(dǎo)出全部查詢結(jié)果,將第③④步合為一步,即不再將頁(yè)面的數(shù)據(jù)往后臺(tái)傳輸,而是再查詢一次數(shù)據(jù)庫(kù),直接導(dǎo)出結(jié)果,而且導(dǎo)出的最大結(jié)果集為5000條。

5 結(jié)語(yǔ)

隨著教育信息化的不斷推進(jìn),各教育單位對(duì)網(wǎng)絡(luò)安全的要求也會(huì)不斷提高,對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的安全管理也提出了更高的要求。網(wǎng)絡(luò)中心的管理人員應(yīng)對(duì)計(jì)算機(jī)的管理方式不斷探索與創(chuàng)新,制定出合理的應(yīng)對(duì)措施來(lái)面對(duì)日益嚴(yán)峻的網(wǎng)絡(luò)安全考驗(yàn)。

[1] 計(jì)算機(jī)數(shù)據(jù)庫(kù)安全管理探析[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2013.10

[2] 基于JDBC的數(shù)據(jù)庫(kù)連接池的煤礦安全監(jiān)控技術(shù)體系建設(shè)[J].煤炭技術(shù),2013.7

[3] http://m.blog.csdn.net/blog/alen1985/41356361

Database management scheme based on Web and riversql

Ma Jianming,Ni Mandi
(Hunan Vocational College of Commerce,Changsha,Hunan,410205)

For security reasons, the server where the segment and the office computer network segment where the isolation of,but for the application system of data import and export operation inconvenience.In this paper,based on riversql,a database management scheme based on web is proposed,which is used to manage all kinds of databases.

database management;riversql

猜你喜歡
頁(yè)面數(shù)據(jù)庫(kù)功能
大狗熊在睡覺(jué)
也談詩(shī)的“功能”
刷新生活的頁(yè)面
關(guān)于非首都功能疏解的幾點(diǎn)思考
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
辨證施護(hù)在輕度認(rèn)知功能損害中的應(yīng)用
主站蜘蛛池模板: 久久久久国产精品嫩草影院| 无码内射在线| av一区二区无码在线| 人妻丰满熟妇av五码区| 四虎在线观看视频高清无码| 无码高清专区| 成人国产小视频| 全裸无码专区| 国产成人高清在线精品| 六月婷婷综合| 欧美一级高清免费a| 日韩毛片在线播放| 欧美性爱精品一区二区三区| 99久久精品免费观看国产| 亚洲有无码中文网| 波多野结衣无码中文字幕在线观看一区二区 | 热久久这里是精品6免费观看| 亚洲无码熟妇人妻AV在线| 久久视精品| 国产福利不卡视频| 亚洲自偷自拍另类小说| 四虎成人精品| 国产在线一二三区| 日韩成人免费网站| 欧美色视频日本| 无码有码中文字幕| 久久精品免费国产大片| 美女高潮全身流白浆福利区| 国产第一色| 极品私人尤物在线精品首页| 中文字幕免费视频| 超碰aⅴ人人做人人爽欧美| 国产欧美视频一区二区三区| 一级一级一片免费| 中文字幕有乳无码| 一级一级一片免费| 日本欧美一二三区色视频| 99在线视频免费| 华人在线亚洲欧美精品| 国产老女人精品免费视频| 国产特一级毛片| 97久久人人超碰国产精品| 福利在线不卡一区| 伊人色综合久久天天| 乱人伦99久久| 污视频日本| 久草性视频| 成年女人a毛片免费视频| 国产成人一二三| 亚洲欧美日韩成人在线| 呦系列视频一区二区三区| 亚洲一区色| 永久在线播放| 亚洲浓毛av| 国产你懂得| 国产精品自在在线午夜区app| 性喷潮久久久久久久久| 色欲色欲久久综合网| 国产无码精品在线播放| 白浆免费视频国产精品视频 | 色妞www精品视频一级下载| 午夜毛片免费看| 欧美三级视频在线播放| 中文字幕乱码二三区免费| 国产精品亚洲一区二区三区在线观看| 91色在线视频| 久久综合丝袜日本网| 一级成人a毛片免费播放| 日本黄色a视频| 国产成人凹凸视频在线| 国产靠逼视频| 欧美在线导航| 国产精品精品视频| av性天堂网| 国模在线视频一区二区三区| 亚洲成a∧人片在线观看无码| 久久综合结合久久狠狠狠97色| 最新日韩AV网址在线观看| 亚洲成aⅴ人在线观看| 成年女人18毛片毛片免费| 中文字幕在线日韩91| 午夜精品区|