欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于ibatis的SQL腳本動(dòng)態(tài)加載方法

文檔序號(hào):6439143閱讀:696來(lái)源:國(guó)知局
專利名稱:一種基于ibatis的SQL腳本動(dòng)態(tài)加載方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種SQL腳本動(dòng)態(tài)加載方法,尤其涉及一種基于ibatis的SQL腳本動(dòng)態(tài)加載方法。
背景技術(shù)
目前Java領(lǐng)域的數(shù)據(jù)庫(kù)訪問(wèn)方式,使用比較廣主要是hibernate和iBATIS 了, 兩者都是屬于開源軟件。iBATIS—詞來(lái)源于“internet”和“abatis”的組合,是一個(gè)由 Clinton Begin在2001年發(fā)起的開放源代碼項(xiàng)目。最初側(cè)重于密碼軟件的開發(fā),現(xiàn)在是一個(gè)基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects (DAO),同時(shí)還提供一個(gè)利用這個(gè)框架開發(fā)的JPetMore實(shí)例。相對(duì)Hibernate和 Apache OJB等“一站式” ORM解決方案而言,ikitis是一種“半自動(dòng)化”的ORM實(shí)現(xiàn)。所謂 “半自動(dòng)化”,是相對(duì)Hibernate等提供了全面的數(shù)據(jù)庫(kù)封裝機(jī)制的“全自動(dòng)化” ORM實(shí)現(xiàn)而言,“全自動(dòng)巧冊(cè)實(shí)現(xiàn)了 POJO和數(shù)據(jù)庫(kù)表之間的映射,以及SQL的自動(dòng)生成和執(zhí)行。而 ibatis的著力點(diǎn),則在于POJO與SQL之間的映射關(guān)系。也就是說(shuō),ikitis并不會(huì)為程序員在運(yùn)行期自動(dòng)生成SQL執(zhí)行。具體的SQL需要程序員編寫,然后通過(guò)映射配置文件,將 SQL所需的參數(shù),以及返回的結(jié)果字段映射到指定P0J0。
但目前iBATIS的使用方式比較適合瀑布式開發(fā),不太符合目前的模塊化開發(fā)思路。圖1為現(xiàn)有基于ibatis的SQL腳本動(dòng)態(tài)加載過(guò)程示意圖,請(qǐng)參見(jiàn)圖1,在一個(gè)統(tǒng)一的 sqlConfig文件中配置上所有該系統(tǒng)所需要訪問(wèn)的sql腳本文件,在應(yīng)用啟動(dòng)過(guò)程中就將這些腳本加載到緩存中。在用戶需要訪問(wèn)數(shù)據(jù)庫(kù)時(shí),直接從緩存中獲取對(duì)應(yīng)的腳本,如果不存在直接報(bào)錯(cuò)。iBATIS有以下幾個(gè)缺點(diǎn)(1)必須有唯一一個(gè)sqlmapConfig配置文件,里面配置上所有需要訪問(wèn)數(shù)據(jù)庫(kù)的 sqlmap文件,集中式管理和模塊化開發(fā)有沖突;(2)在項(xiàng)目開發(fā)中,多人共同去維護(hù)這一份sqlmapConfig文件,代碼提交容易引起沖突;(3)如果是配置多個(gè)數(shù)據(jù)庫(kù),那就意味著需要配置多份sqlmapConfig,其他配置項(xiàng)也同樣需要多份,配置文件冗余;(4)不能自動(dòng)識(shí)別不同數(shù)據(jù)庫(kù),加載對(duì)應(yīng)數(shù)據(jù)庫(kù)類型的sqlmap文件。
因此有必要對(duì)現(xiàn)有的基于ibatis的SQL腳本動(dòng)態(tài)加載方法進(jìn)行改進(jìn),能夠自動(dòng)識(shí)別不同數(shù)據(jù)庫(kù)并加載對(duì)應(yīng)數(shù)據(jù)庫(kù)的腳本配置文件,從而實(shí)現(xiàn)模塊化開發(fā)。發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種基于ibatis的SQL腳本動(dòng)態(tài)加載方法,能夠識(shí)別不同sql配置文件并自動(dòng)加載對(duì)應(yīng)的腳本配置文件,從而實(shí)現(xiàn)模塊化開發(fā)。
本發(fā)明為解決上述技術(shù)問(wèn)題而采用的技術(shù)方案是提供一種基于ibatis的SQL腳本動(dòng)態(tài)加載方法,包括如下步驟a)配置多個(gè)獨(dú)立的sql配置文件,統(tǒng)一設(shè)置所有sql配置文件的緩存區(qū);b)腳本調(diào)用方在查找sql信息的時(shí)候,先去緩存區(qū)里面讀取sql腳本配置信息,如果存在,啟動(dòng)程序自動(dòng)加載相應(yīng)的sql配置文件到緩存區(qū),否則拋出異常,提示出錯(cuò),并查找匹配的sql配置文件更新緩存區(qū);C)加載后將該文件信息從sql配置文件中去除;d)最后從緩存區(qū)中讀取對(duì)應(yīng)的sql腳本信息返回給調(diào)用方。
上述的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,其中,所述步驟b)采用遍歷的方法進(jìn)行搜索匹配并加載相應(yīng)的sql配置文件到緩存區(qū)。
上述的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,其中,所述多個(gè)不同的sql配置文件分散設(shè)置在各自的功能模塊中。
上述的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,其中,不同類型的數(shù)據(jù)庫(kù)采用不同的sql配置文件。
上述的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,其中,所述不同類型的數(shù)據(jù)庫(kù)包括 Oracle、Mysql 禾口 Sql Server 數(shù)據(jù)庫(kù)。
本發(fā)明對(duì)比現(xiàn)有技術(shù)有如下的有益效果本發(fā)明提供的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,通過(guò)配置多個(gè)獨(dú)立的sql配置文件,省去了總控sql配置文件,易于管理和實(shí)現(xiàn)模塊化開發(fā);此外,本發(fā)明的SQL腳本動(dòng)態(tài)加載方法根據(jù)需要加載相應(yīng)的配置文件,從而提升了系統(tǒng)性能。


圖1為現(xiàn)有基于ibatis的SQL腳本動(dòng)態(tài)加載過(guò)程示意圖; 圖2為本發(fā)明基于ibatis的SQL腳本動(dòng)態(tài)加載過(guò)程示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的描述。
圖2為本發(fā)明基于ibatis的SQL腳本動(dòng)態(tài)加載過(guò)程示意圖。
請(qǐng)參見(jiàn)圖2,本發(fā)明提供的基于ibatis的SQL腳本動(dòng)態(tài)加載方法包括如下步驟 a)配置多個(gè)獨(dú)立的sql配置文件,統(tǒng)一設(shè)置所有sql配置文件的緩存區(qū);b)腳本調(diào)用方在查找sql信息的時(shí)候,先去緩存區(qū)里面讀取sql腳本配置信息,如果存在,啟動(dòng)程序自動(dòng)加載相應(yīng)的sql配置文件到緩存區(qū),否則拋出異常,提示出錯(cuò),并查找匹配的sql配置文件更新緩存區(qū);C)加載后將該文件信息從sql配置文件中去除;d)最后從緩存區(qū)中讀取對(duì)應(yīng)的sql腳本信息返回給調(diào)用方。
本發(fā)明提供的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,系統(tǒng)啟動(dòng)過(guò)程中會(huì)按照一定的規(guī)則讀取配置文件信息,這個(gè)配置文件的信息里面記錄了 sqlmap的namespace和sql腳本文件的對(duì)應(yīng)關(guān)系,一旦加載之后可從內(nèi)存中將該條對(duì)應(yīng)記錄刪除,避免重復(fù)加載造成系統(tǒng)異常,物理文件中的內(nèi)容不會(huì)被刪除。待系統(tǒng)重啟后,又會(huì)將文件配置信息完整加載到內(nèi)存中。
本發(fā)明提供的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,具有如下優(yōu)點(diǎn)1)由于可以不同sql配置文件放到每個(gè)功能模塊中,而不需要一個(gè)總控配置文件,可以做到模塊化開發(fā),整個(gè)系統(tǒng)可以將不同模塊組合在一起,也可以隨時(shí)將模塊移除,而不影響其他功能,不需要做一行代碼改動(dòng);2)自動(dòng)加載sql配置文件,還可以提升系統(tǒng)性能,只有在需要某個(gè)sql配置文件的時(shí)候才會(huì)去加載,如果某一個(gè)功能已經(jīng)過(guò)時(shí)無(wú)人使用,那么相應(yīng)的sql配置文件也不會(huì)加載到緩存中去,提升性能。
本發(fā)明提供的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,優(yōu)選采用遍歷的方法進(jìn)行搜索匹配并加載相應(yīng)的sql配置文件到緩存區(qū);多個(gè)不同的sql配置文件可分散設(shè)置在各自的功能模塊中;不同類型的數(shù)據(jù)庫(kù),如Oracle、Mysql和Sql krver數(shù)據(jù)庫(kù),可采用不同的 sql配置文件。按照不同類型的數(shù)據(jù)庫(kù)去訪問(wèn)不同的sql配置文件,解析加載到sql緩存中去。加載后將該文件信息從sql配置文件中去除。由于緩存區(qū)不是一次創(chuàng)建完成的,而是在系統(tǒng)執(zhí)行過(guò)程中逐步更新的,而且可以保證緩存中的內(nèi)容都是被使用過(guò)的,不會(huì)出現(xiàn)已經(jīng)不使用的內(nèi)容還繼續(xù)保留在緩存中,提高緩存命中率。
本發(fā)明提供的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,對(duì)多數(shù)據(jù)源的支持比較友好,只需要相同的一份配置文件就可以支持多數(shù)據(jù)源的訪問(wèn),并可以依據(jù)當(dāng)前的數(shù)據(jù)庫(kù)類型加載相應(yīng)的sql文件。如uSer_MySQL. xml和usei^Oracle. xml,當(dāng)指定的數(shù)據(jù)源是 MySQL的時(shí)候,就自動(dòng)加載user_MySQL. xml這個(gè)數(shù)據(jù)庫(kù)文件。當(dāng)系統(tǒng)需要切換數(shù)據(jù)庫(kù)的時(shí)候,只需要增加其他數(shù)據(jù)庫(kù)對(duì)應(yīng)的sql文件即可,其他數(shù)據(jù)庫(kù)訪問(wèn)都無(wú)需做改動(dòng)。
雖然本發(fā)明已以較佳實(shí)施例揭示如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的修改和完善,因此本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求書所界定的為準(zhǔn)。
權(quán)利要求
1.一種基于ibatis的SQL腳本動(dòng)態(tài)加載方法,其特征在于,包括如下步驟a)配置多個(gè)獨(dú)立的sql配置文件,統(tǒng)一設(shè)置所有sql配置文件的緩存區(qū);b)腳本調(diào)用方在查找sql信息的時(shí)候,先去緩存區(qū)里面讀取sql腳本配置信息,如果存在,啟動(dòng)程序自動(dòng)加載相應(yīng)的sql配置文件到緩存區(qū),否則拋出異常,提示出錯(cuò),并查找匹配的sql配置文件更新緩存區(qū);c)加載后將該文件信息從sql配置文件中去除;d)最后從緩存區(qū)中讀取對(duì)應(yīng)的sql腳本信息返回給調(diào)用方。
2.如權(quán)利要求1所述的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,其特征在于,所述步驟 b)采用遍歷的方法進(jìn)行搜索匹配并加載相應(yīng)的sql配置文件到緩存區(qū)。
3.如權(quán)利要求1或2所述的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,其特征在于,所述多個(gè)不同的sql配置文件分散設(shè)置在各自的功能模塊中。
4.如權(quán)利要求1或2所述的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,其特征在于,不同類型的數(shù)據(jù)庫(kù)采用不同的sql配置文件。
5.如權(quán)利要求4所述的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,其特征在于,所述不同類型的數(shù)據(jù)庫(kù)包括Oracle、Mysql和Sql krver數(shù)據(jù)庫(kù)。
全文摘要
本發(fā)明公開了一種基于ibatis的SQL腳本動(dòng)態(tài)加載方法,包括如下步驟a)配置多個(gè)獨(dú)立的sql配置文件,統(tǒng)一設(shè)置所有sql配置文件的緩存區(qū);b)腳本調(diào)用方在查找sql信息的時(shí)候,先去緩存區(qū)里面讀取sql腳本配置信息,如果存在,啟動(dòng)程序自動(dòng)加載相應(yīng)的sql配置文件到緩存區(qū),否則,查找sql配置文件更新緩存區(qū);c)加載后將該文件信息從sql配置文件中去除;d)最后從緩存區(qū)中讀取對(duì)應(yīng)的sql腳本信息返回給調(diào)用方。本發(fā)明提供的基于ibatis的SQL腳本動(dòng)態(tài)加載方法,通過(guò)配置多個(gè)獨(dú)立的sql配置文件并根據(jù)需要加載相應(yīng)的配置文件,省去了總控sql配置文件,易于管理和實(shí)現(xiàn)模塊化開發(fā)且提升了系統(tǒng)性能。
文檔編號(hào)G06F17/30GK102521274SQ20111037741
公開日2012年6月27日 申請(qǐng)日期2011年11月24日 優(yōu)先權(quán)日2011年11月24日
發(fā)明者楊飛 申請(qǐng)人:上海明想電子科技有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
保山市| 师宗县| 兴城市| 雷山县| 罗甸县| 平陆县| 科技| 喀喇沁旗| 鄱阳县| 东台市| 卢龙县| 晋江市| 辽宁省| 普格县| 张家口市| 昌吉市| 久治县| 策勒县| 开鲁县| 天水市| 广州市| 衢州市| 达州市| 乌拉特后旗| 南阳市| 广河县| 大同县| 襄垣县| 同仁县| 仙居县| 孟津县| 许昌市| 得荣县| 岳池县| 长岛县| 和顺县| 怀安县| 满洲里市| 双牌县| 黑水县| 亳州市|