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

分片數(shù)據(jù)庫訪問方法及數(shù)據(jù)庫系統(tǒng)的制作方法

文檔序號(hào):6491903閱讀:229來源:國知局
分片數(shù)據(jù)庫訪問方法及數(shù)據(jù)庫系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種分片數(shù)據(jù)庫訪問方法及數(shù)據(jù)庫系統(tǒng)。所述分片數(shù)據(jù)庫訪問方法用于Mybatis和Spring構(gòu)架,包括以下步驟:1、基于一數(shù)據(jù)庫事務(wù)通過Spring配置文件定位待訪問的數(shù)據(jù)庫;2、分別為每個(gè)待訪問的數(shù)據(jù)庫建立一訪問線程;3、Mybatis的數(shù)據(jù)庫操作接口通過各個(gè)訪問線程操作各個(gè)訪問線程關(guān)聯(lián)的待訪問的數(shù)據(jù)庫,收集各個(gè)訪問線程的反饋數(shù)據(jù)并生成執(zhí)行結(jié)果;4、Spring的事務(wù)管理接口基于所述數(shù)據(jù)庫操作接口生成的執(zhí)行結(jié)果檢測所述數(shù)據(jù)庫事務(wù)是否執(zhí)行成功,并執(zhí)行相應(yīng)地提交和回滾。本發(fā)明還提供了一種使用所述分片數(shù)據(jù)庫訪問方法的數(shù)據(jù)庫系統(tǒng)。本發(fā)明利用現(xiàn)有的框架,通過路由策略來實(shí)現(xiàn)分頁數(shù)據(jù)庫的操作。
【專利說明】分片數(shù)據(jù)庫訪問方法及數(shù)據(jù)庫系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種分片數(shù)據(jù)庫訪問方法及數(shù)據(jù)庫系統(tǒng),特別是涉及一種適用于Mybatis和Spring框架的分片數(shù)據(jù)庫訪問方法及數(shù)據(jù)庫系統(tǒng)。
【背景技術(shù)】
[0002]數(shù)據(jù)庫的擴(kuò)展是一個(gè)永恒的話題。對(duì)于傳統(tǒng)的關(guān)系數(shù)據(jù)庫,采用的是縱向擴(kuò)展(ScaleUp)的方式,即買更好的機(jī)器添加更多的資源來取得更好的性能(如硬件升級(jí)、更快更多的CPU (中央處理器)、更大的內(nèi)存、更多更大的磁盤等)。關(guān)系數(shù)據(jù)庫通過ScaleUp方式已在傳統(tǒng)的企業(yè)應(yīng)用環(huán)境中統(tǒng)治了將近三十多年。但是近年來隨著數(shù)據(jù)量的暴增尤其是云計(jì)算模式的出現(xiàn),這種擴(kuò)展模式對(duì)于某些應(yīng)用已經(jīng)不太適合,這時(shí)便出現(xiàn)了橫向擴(kuò)展(ScaleOut)模式,sharding就是其中一種。
[0003]sharding是把數(shù)據(jù)庫Scale Out到多個(gè)物理節(jié)點(diǎn)上的一種有效的方式。Shard這個(gè)詞的意思是“碎片”。如果將一個(gè)數(shù)據(jù)庫當(dāng)作一塊大玻璃,將這塊玻璃打碎,那么每一小塊都稱為數(shù)據(jù)庫的碎片。將整個(gè)數(shù)據(jù)庫打碎的過程就叫做sharding,可以翻譯為分片。
[0004]形式上,sharding可以簡單定義為將大數(shù)據(jù)庫分布到多個(gè)物理節(jié)點(diǎn)上的一個(gè)分區(qū)方案。每一個(gè)分區(qū)包含數(shù)據(jù)庫的某一部分,稱為一個(gè)shard,分區(qū)方式可以是任意的,并不局限于傳統(tǒng)的水平分區(qū)和垂直分區(qū)。系統(tǒng)中需要有服務(wù)器進(jìn)行查詢路由轉(zhuǎn)發(fā),負(fù)責(zé)將查詢轉(zhuǎn)發(fā)到包含該查詢所訪問數(shù)據(jù)的shard或shards節(jié)點(diǎn)上去執(zhí)行。
[0005]而目前的Mybatis系統(tǒng)還主要使用單數(shù)據(jù)庫架構(gòu),所以采用的是縱向擴(kuò)展的方式,因而很多基于Mybatis系統(tǒng)面臨著大數(shù)據(jù)量、高并發(fā)的考驗(yàn),它們非常需要應(yīng)用sharding來緩解數(shù)據(jù)庫的巨大壓力。但是成熟的基于Mybatis的sharding框架卻還沒有出現(xiàn)。

【發(fā)明內(nèi)容】

[0006]本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中的Mybatis系統(tǒng)不適用于sharding框架的多數(shù)據(jù)庫系統(tǒng)的缺陷,提供一種分片數(shù)據(jù)庫訪問方法及其數(shù)據(jù)庫系統(tǒng),利用現(xiàn)有的Mybatis和Spring框架,通過路由策略來實(shí)現(xiàn)sharding數(shù)據(jù)庫的操作。
[0007]本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的:
[0008]本發(fā)明提供了一種分片數(shù)據(jù)庫訪問方法,適用于Mybatis和Spring框架,其特點(diǎn)是,所述分片數(shù)據(jù)庫訪問方法包括以下步驟:
[0009]S1、基于一數(shù)據(jù)庫事務(wù)通過Spring配置文件定位待訪問的數(shù)據(jù)庫;
[0010]S2、分別為每個(gè)待訪問的數(shù)據(jù)庫建立一訪問線程;
[0011]S3、Mybatis的數(shù)據(jù)庫操作接口通過各個(gè)訪問線程操作與各個(gè)訪問線程關(guān)聯(lián)的待訪問的數(shù)據(jù)庫,收集各個(gè)訪問線程的反饋數(shù)據(jù)并生成執(zhí)行結(jié)果;
[0012]S4,Spring的事務(wù)管理接口基于Mybatis的數(shù)據(jù)庫操作接口生成的執(zhí)行結(jié)果檢測所述數(shù)據(jù)庫事務(wù)是否執(zhí)行成功,若是,所述Spring的事務(wù)管理接口向各個(gè)待訪問的數(shù)據(jù)庫提交事務(wù),否則所述Spring的事務(wù)管理接口向各個(gè)待訪問的數(shù)據(jù)庫回滾事務(wù)。
[0013]本發(fā)明中利用Mybatis和Spring框架實(shí)現(xiàn)多數(shù)據(jù)庫的訪問和操作,從而實(shí)現(xiàn)分片數(shù)據(jù)庫的事務(wù)提交和回滾。其中利用Spring進(jìn)行分片數(shù)據(jù)庫的事務(wù)具體提交和回滾,利用Mybatis實(shí)現(xiàn)對(duì)各個(gè)數(shù)據(jù)庫的具體操作。
[0014]其中所述MyBatis是一個(gè)基于Java (—種編程語言)的持久層框架。其提供的持久層框架是一種支持普通SQL (結(jié)構(gòu)化查詢語言)查詢,存儲(chǔ)過程和高級(jí)映射的優(yōu)秀持久層框架。
[0015]所述Spring是一個(gè)開源框架,它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean (—種JAVA語言寫成的可重用組件)來完成以前只可能由EJB(Enterprise JavaBean,—種企業(yè)的JAVA可重用組件)完成的事情。
[0016]其中所述Spring配置文件為現(xiàn)有的Spring框架中設(shè)置路由信息或路由類的文件,所以本發(fā)明中不再詳細(xì)贅述。
[0017]此外本發(fā)明中所述數(shù)據(jù)庫事務(wù)是指作為單個(gè)邏輯工作單元執(zhí)行的一系列操作。事務(wù)處理可以確保除非事務(wù)性單元內(nèi)的所有操作都成功完成,否則不會(huì)永久更新面向數(shù)據(jù)的資源。通過將一組相關(guān)操作組合為一個(gè)要么全部成功要么全部失敗的單元,可以簡化錯(cuò)誤恢復(fù)并使應(yīng)用程序更加可靠。一個(gè)邏輯工作單元要成為事務(wù),必須滿足所謂的原子性、一致性、隔離性和持久性的屬性。也就是說,本發(fā)明中的數(shù)據(jù)庫事務(wù)是指對(duì)各個(gè)待訪問的數(shù)據(jù)庫的操作的具體的集合,僅在所有操作都成功時(shí),才對(duì)所述各個(gè)待訪問的數(shù)據(jù)庫的具體操作內(nèi)容進(jìn)行更新。若失敗,則將所述各個(gè)待訪問的數(shù)據(jù)庫的具體操作內(nèi)容進(jìn)行回滾還原,從而保證各個(gè)數(shù)據(jù)庫內(nèi)容的確定。
[0018]較佳地,所述步驟SI為:
[0019]S11、基于所述數(shù)據(jù)庫事務(wù)通過Spring配置文件的路由信息或路由類來定位待訪問的數(shù)據(jù)庫。
[0020]S12、基于所述待訪問的數(shù)據(jù)庫,關(guān)聯(lián)Mybatis Mapper文件的statement所需要訪問的Spring配置文件的路由信息或路由類。
[0021]其中所述statement為Mybatis Mapper文件所配置的用于從Spring配置文件待訪問的數(shù)據(jù)庫的路由策略的路由信息或路由類。本發(fā)明中利用Mybatis框架現(xiàn)有的Mybatis Mapper文件中的statement的路由策略來確定在整個(gè)分片數(shù)據(jù)庫中待訪問的數(shù)據(jù)庫。
[0022]較佳地,在所述步驟SI之前還包括以下步驟:
[0023]在所述Spring配置文件中配置從數(shù)據(jù)庫。
[0024]本發(fā)明中利用現(xiàn)有Spring配置文件的讀寫分離技術(shù),通過設(shè)置從數(shù)據(jù)庫(SPslave數(shù)據(jù)庫)的方式,將數(shù)據(jù)庫的讀操作和數(shù)據(jù)庫的增刪改操作分散到不同的數(shù)據(jù)庫中,從而提聞讀與數(shù)據(jù)的效率。
[0025]較佳地,所述步驟S3為:
[0026]S31、所述Mybatis的數(shù)據(jù)庫操作接口通過各個(gè)訪問線程操作與各個(gè)訪問線程關(guān)聯(lián)的待訪問的數(shù)據(jù)庫,并收集各個(gè)訪問線程的反饋數(shù)據(jù);
[0027]S32、所述Mybatis的數(shù)據(jù)庫操作接口基于所述反饋數(shù)據(jù)通過SQL操作生成執(zhí)行結(jié)
果O[0028]優(yōu)選地,所述SQL操作為求和、查詢最大值、查詢最小值、計(jì)數(shù)或排序等。
[0029]較佳地,步驟S4中還包括以下步驟:
[0030]所述Spring的事務(wù)管理接口與各個(gè)待訪問的數(shù)據(jù)庫建立數(shù)據(jù)鏈接。
[0031]優(yōu)選地,所述步驟S2中還包括以下步驟:
[0032]所述Spring的事務(wù)管理接口與各個(gè)待訪問的數(shù)據(jù)庫通過LazyConnectionDataSourceProxy 鏈接。
[0033]其中所述LazyConnectionDataSourceProxy在Spring架構(gòu)中用于延遲獲取數(shù)據(jù)庫連接,即只有在真正創(chuàng)建Statement等操作數(shù)據(jù)庫的數(shù)據(jù)鏈接時(shí)才獲取實(shí)際的連接。
[0034]本發(fā)明通過在上述步驟S4和步驟S2中用LazyConnectionDataSourceProxy建立鏈接,避免了在開啟事務(wù)時(shí)創(chuàng)建過多的連接,只有在需要對(duì)數(shù)據(jù)庫進(jìn)行實(shí)際操作時(shí),才建立到數(shù)據(jù)庫的連接,從而減少無謂的數(shù)據(jù)庫連接開銷。
[0035]較佳地,所述步驟S4之后還包括以下步驟:
[0036]S5、所述待訪問的數(shù)據(jù)庫之間數(shù)據(jù)同步。
[0037]優(yōu)選地,所述步驟S5為:
[0038]所述待訪問的數(shù)據(jù)庫通過Replication機(jī)制同步數(shù)據(jù)。
[0039]本發(fā)明中所述數(shù)據(jù)庫之間通過現(xiàn)有數(shù)據(jù)庫中自帶的Replication機(jī)制實(shí)現(xiàn)數(shù)據(jù)的同步。所以本發(fā)明不再對(duì)所述R印Iication機(jī)制進(jìn)行詳細(xì)地描述。此外任何數(shù)據(jù)庫的數(shù)據(jù)同步機(jī)制均可應(yīng)用于本發(fā)明的數(shù)據(jù)庫同步中。
[0040]本發(fā)明還提供了一種數(shù)據(jù)庫系統(tǒng),其特點(diǎn)是,所述數(shù)據(jù)庫系統(tǒng)包括一服務(wù)器和一輸入裝置,其中所述服務(wù)器具有一個(gè)或多個(gè)數(shù)據(jù)庫,所述輸入裝置使用Mybatis和Spring框架,并通過如上所述的分片數(shù)據(jù)庫訪問方法訪問所述數(shù)據(jù)庫。
[0041]較佳地,所述數(shù)據(jù)庫系統(tǒng)還包括一 ID (身份識(shí)別)生成器,所述ID生成器為每個(gè)所述數(shù)據(jù)庫生成一 ID識(shí)別信息,其中各個(gè)ID識(shí)別信息均是唯一的。
[0042]為了避免數(shù)據(jù)庫的ID出現(xiàn)重復(fù),本發(fā)明提供了 ID生成器來保證分布式環(huán)境下ID的唯一性和生成效率。其中它既可以生成字符串型和數(shù)字型ID,其中數(shù)字型ID支持OracIe(甲骨文公司的數(shù)據(jù)庫)、MySQL數(shù)據(jù)庫(一個(gè)中、小型關(guān)系型數(shù)據(jù)庫),例如ID生成器從數(shù)據(jù)庫中獲取一段ID后放進(jìn)內(nèi)存中,使用的時(shí)候先從內(nèi)存中獲取ID,如果內(nèi)存中的ID用完了再向數(shù)據(jù)庫中獲取下一段ID。
[0043]較佳地,所述服務(wù)器還包括一 SQL日志,所述SQL日志記錄如上所述分片數(shù)據(jù)庫訪問方法中執(zhí)行超時(shí)的SQL語句。
[0044]本發(fā)明中還通過所述SQL日志記錄執(zhí)行超時(shí)的所述分片數(shù)據(jù)庫訪問方法的SQL語句,從而便于找出消耗數(shù)據(jù)庫資源的具體的SQL語句。
[0045]優(yōu)選地,所述數(shù)據(jù)庫為分頁數(shù)據(jù)庫。
[0046]本發(fā)明中所述數(shù)據(jù)庫可以是單數(shù)據(jù)庫物理分頁或者多數(shù)據(jù)庫邏輯分頁等方式的分頁數(shù)據(jù)庫。
[0047]較佳地,所述分頁數(shù)據(jù)庫均包括一緩存,所述緩存用于存儲(chǔ)通過如上所述的分片數(shù)據(jù)庫訪問方法訪問所述分頁數(shù)據(jù)庫的各個(gè)分頁的執(zhí)行結(jié)果。本發(fā)明中通過使用緩存來提高分頁數(shù)據(jù)庫中分頁的效率
[0048]在符合本領(lǐng)域常識(shí)的基礎(chǔ)上,上述各優(yōu)選條件,可任意組合,即得本發(fā)明各較佳實(shí)例。
[0049]本發(fā)明的積極進(jìn)步效果在于:
[0050]本發(fā)明的分片數(shù)據(jù)庫訪問方法及其數(shù)據(jù)庫系統(tǒng),利用現(xiàn)有的Mybatis和Spring框架,通過路由策略來實(shí)現(xiàn)sharding數(shù)據(jù)庫的操作。
[0051]同時(shí),本發(fā)明還通過Spring的事務(wù)管理接口和Mybatis對(duì)數(shù)據(jù)庫的操作的結(jié)合,實(shí)現(xiàn)了 sharding數(shù)據(jù)庫的多數(shù)據(jù)庫的提交和回滾,保證了結(jié)果的正確性。
[0052]此外還進(jìn)一步的利用Spring架構(gòu)的LazyConnectionDataSourceProxy來減少無謂的數(shù)據(jù)庫連接開銷。
[0053]最后,本發(fā)明還通過ID生成器和SQL日志來保證數(shù)據(jù)庫的唯一標(biāo)識(shí)以及找出消耗數(shù)據(jù)庫資源的具體的SQL語句。
【專利附圖】

【附圖說明】
[0054]圖1為本發(fā)明的數(shù)據(jù)庫系統(tǒng)的較佳實(shí)施例的結(jié)構(gòu)示意圖。
[0055]圖2為本發(fā)明的較佳實(shí)施例的數(shù)據(jù)庫訪問的流程圖。
【具體實(shí)施方式】
[0056]下面通過實(shí)施例的方式進(jìn)一步說明本發(fā)明,但并不因此將本發(fā)明限制在所述的實(shí)施例范圍之中。
[0057]本實(shí)施例的數(shù)據(jù)庫系統(tǒng)采用Mybatis和Spring框架,實(shí)現(xiàn)對(duì)sharding數(shù)據(jù)庫的操作,即實(shí)現(xiàn)了數(shù)據(jù)庫訪問的可配置性。能夠方便的通過配置文件來配置數(shù)據(jù)庫訪問路由策略。而且使得開發(fā)數(shù)據(jù)庫應(yīng)用的透明性。此外還抑制了數(shù)據(jù)訪問的效率很可能會(huì)隨著數(shù)據(jù)庫的增加而下降的問題。并且保證了數(shù)據(jù)訪問的正確性。即在多數(shù)據(jù)庫的事務(wù)操作實(shí)現(xiàn)多庫提交或者多庫回滾,保證數(shù)據(jù)的一致性和正確性。使得正常使用所述多數(shù)據(jù)庫的求和、計(jì)數(shù)、查詢最大值、查詢最小值、排序、分頁等SQL操作。
[0058]因此如圖1所示,本實(shí)施例的數(shù)據(jù)庫系統(tǒng)包括一服務(wù)器1、一輸入裝置2和一 ID生成器3。
[0059]其中本實(shí)施例中所述服務(wù)器中包括2個(gè)數(shù)據(jù)庫(圖中未顯示),其中所述服務(wù)器中包括的數(shù)據(jù)庫的數(shù)量是任意的,而不僅限于本實(shí)施例的2個(gè)數(shù)據(jù)庫。其中若所述數(shù)據(jù)庫為分頁數(shù)據(jù)庫,則本實(shí)施例中可以通過對(duì)Mybatis和Spring框架中配置文件的修改來提高分頁的效率。
[0060]具體的說,可以采用如下代碼:
[0061]
<plugin interceptor="scm.mybatis.sharding.plugin.Paginationinterceptor">[0062]<!-- 數(shù)據(jù)庫類型,如果是 Oracle 就寫成scm.mybatis.sharding.plugin.0racIeDialect ~>
〈propertyname="dialectCiass"
value-'scm.mybatis.sharding.plugin.MySQLDialect"/>
<!--是否啟用sharding分頁,單數(shù)據(jù)庫時(shí)寫成false--〉
〈property name="isSharding" value="true"/>
<!-sharding分頁特有屬性,固定取多少行數(shù)據(jù)-->
〈property name="limitNumber' value="2000'7>
</plugin>
<bean class=Mscm.mybatis.sharding.piugin.PaginationUtil">
〈propeity name="pageCache">
<!—本地緩存。本框架也內(nèi)置Memcache緩存-->
<bean class="scm.mybatis.sharding.plugin丄ocalC.ache”〉.<!-緩存60秒過期-->
〈property name="expireSecond" value="60"></piOperty>
</bean>
<7property>
</bean>
<seiect id="getPageTest" resultMap="test">
select id,deai_couiU,sts,own_sign from dbs—test order by id
〈/select〉
List<TestDomain> tests = paginationUti1.doPage(this.getSqlSession(),statement, param, startlndex, recordCount,"testId",false);
[0063]上述代碼中通過從Spring中獲取paginationUtil,調(diào)用doPage方法,參數(shù)依次是sqlSession、Mapper文件中的statementID、參數(shù)、第幾頁、每頁記錄條數(shù)、排序?qū)傩悦?、是否降序?br> [0064]上述代碼可以看到若應(yīng)用方的SQL中沒有出現(xiàn)分頁的語句,可以避免了 SQL和特定數(shù)據(jù)庫的綁定,這是因?yàn)楸緦?shí)施例是通過PaginationInterceptor類作為Mybatis的插件,在執(zhí)行SQL之前根據(jù)當(dāng)前數(shù)據(jù)庫類型,直接修改SQL語句(增加分頁的SQL),然后再執(zhí)行修改后的SQL從而實(shí)現(xiàn)分頁的。如果采用現(xiàn)有方式進(jìn)行分頁,除了需要寫訪問多個(gè)數(shù)據(jù)庫的代碼外,分頁的時(shí)候效率不高,也容易出錯(cuò)。
[0065]所述服務(wù)器I還包括一 SQL日志(圖中未顯示),所述SQL日志記錄執(zhí)行隨所述2個(gè)數(shù)據(jù)庫訪問時(shí)超時(shí)的SQL語句,具體地說,就是記錄執(zhí)行超過指定時(shí)間的SQL語句,方便找出消耗數(shù)據(jù)庫資源的statement語句。其中在執(zhí)行數(shù)據(jù)庫操作之前會(huì)先記錄當(dāng)前時(shí)間,執(zhí)行完后和先前時(shí)間進(jìn)行比較,如果時(shí)間間隔超過了應(yīng)用方在配置文件中配置的超時(shí)時(shí)間,會(huì)在日志里記錄SQL語句和執(zhí)行時(shí)間信息。
[0066]所述ID生成器3用于為服務(wù)器I中的數(shù)據(jù)庫各自生成一個(gè)唯一的ID識(shí)別信息,而且各個(gè)數(shù)據(jù)庫通過各自的ID識(shí)別信息進(jìn)行區(qū)別,具體地說,就是為所述2個(gè)數(shù)據(jù)庫各自生成一個(gè)ID識(shí)別信息,這2個(gè)ID識(shí)別信息均是唯一的,從而通過所述ID識(shí)別信息就可以區(qū)分所述2個(gè)數(shù)據(jù)庫。
[0067]其中所述ID生成器3可以利用Spring配置文件實(shí)現(xiàn),例如采用如下代碼來實(shí)現(xiàn)ID生成器3:
[0068]在Spring配置文件中加入下述代碼:
[0069]
【權(quán)利要求】
1.一種分片數(shù)據(jù)庫訪問方法,用于Mybatis和Spring構(gòu)架,其特征在于,所述分片數(shù)據(jù)庫訪問方法包括以下步驟: 51、基于一數(shù)據(jù)庫事務(wù)通過Spring配置文件定位待訪問的數(shù)據(jù)庫; 52、分別為每個(gè)待訪問的數(shù)據(jù)庫建立一訪問線程; 53、Mybatis的數(shù)據(jù)庫操作接口通過各個(gè)訪問線程操作與各個(gè)訪問線程關(guān)聯(lián)的待訪問的數(shù)據(jù)庫,收集各個(gè)訪問線程的反饋數(shù)據(jù)并生成執(zhí)行結(jié)果; S4,Spring的事務(wù)管理接口基于Mybatis的數(shù)據(jù)庫操作接口生成的執(zhí)行結(jié)果檢測所述數(shù)據(jù)庫事務(wù)是否執(zhí)行成功,若是,所述Spring的事務(wù)管理接口向各個(gè)待訪問的數(shù)據(jù)庫提交事務(wù),否則所述Spring的事務(wù)管理接口向各個(gè)待訪問的數(shù)據(jù)庫回滾事務(wù)。
2.如權(quán)利要求1所述的分片數(shù)據(jù)庫訪問方法,其特征在于,所述步驟SI為: 511、基于所述數(shù)據(jù)庫事務(wù)通過Spring配置文件的路由信息或路由類來定位待訪問的數(shù)據(jù)庫; 512、基于所述待訪問的數(shù)據(jù)庫,關(guān)聯(lián)MybatisMapper文件的statement所需要訪問的Spring配置文件的路由信息或路由類。
3.如權(quán)利要求1所述的分片數(shù)據(jù)庫訪問方法,其特征在于,在所述步驟SI之前還包括以下步驟: 在所述Spring配置文件中配置從數(shù)據(jù)庫。
4.如權(quán)利要求1所述的分片數(shù)據(jù)庫訪問方法,其特征在于,所述步驟S3為: 531、所述Mybatis的數(shù)據(jù)庫操 作接口通過各個(gè)訪問線程操作與各個(gè)訪問線程關(guān)聯(lián)的待訪問的數(shù)據(jù)庫,并收集各個(gè)訪問線程的反饋數(shù)據(jù); 532、所述Mybatis的數(shù)據(jù)庫操作接口基于所述反饋數(shù)據(jù)通過SQL操作生成執(zhí)行結(jié)果。
5.如權(quán)利要求4所述的分片數(shù)據(jù)庫訪問方法,其特征在于,所述SQL操作為求和、查詢最大值、查詢最小值、計(jì)數(shù)或排序。
6.如權(quán)利要求1所述的分片數(shù)據(jù)庫訪問方法,其特征在于,步驟S4中還包括以下步驟: 所述Spring的事務(wù)管理接口與各個(gè)待訪問的數(shù)據(jù)庫建立數(shù)據(jù)鏈接。
7.如權(quán)利要求6所述的分片數(shù)據(jù)庫訪問方法,其特征在于,所述步驟S2中還包括以下步驟: 所述Spring的事務(wù)管理接口與各個(gè)待訪問的數(shù)據(jù)庫通過LazyConnectionDataSourceProxy 鏈接。
8.如權(quán)利要求1所述的分片數(shù)據(jù)庫訪問方法,其特征在于,所述步驟S4之后還包括以下步驟: S5、所述待訪問的數(shù)據(jù)庫之間數(shù)據(jù)同步。
9.如權(quán)利要求8所述的分片數(shù)據(jù)庫訪問方法,其特征在于,所述步驟S5為: 所述待訪問的數(shù)據(jù)庫通過Replication機(jī)制同步數(shù)據(jù)。
10.一種數(shù)據(jù)庫系統(tǒng),其特征在于,所述數(shù)據(jù)庫系統(tǒng)包括一服務(wù)器和一輸入裝置,其中所述服務(wù)器具有一個(gè)或多個(gè)數(shù)據(jù)庫,所述輸入裝置使用Mybatis和Spring框架,并通過如權(quán)利要求1-9中任一項(xiàng)所述的分片數(shù)據(jù)庫訪問方法訪問所述數(shù)據(jù)庫。
11.如權(quán)利要求10所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述數(shù)據(jù)庫系統(tǒng)還包括一ID生成器,所述ID生成器為每個(gè)所述數(shù)據(jù)庫生成一 ID識(shí)別信息,其中各個(gè)ID識(shí)別信息均是唯一的。
12.如權(quán)利要求10所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述服務(wù)器還包括一SQL日志,所述SQL日志記錄如權(quán)利要求1-9中任一項(xiàng)所述分片數(shù)據(jù)庫訪問方法中執(zhí)行超時(shí)的SQL語句。
13.如權(quán)利要求10-12中任一項(xiàng)所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述數(shù)據(jù)庫為分頁數(shù)據(jù)庫。
14.如權(quán)利要求13所述的數(shù)據(jù)庫系統(tǒng),其特征在于,所述分頁數(shù)據(jù)庫均包括一緩存,所述緩存用于存儲(chǔ)通過如權(quán)利要求1-9中任一項(xiàng)所述的分片數(shù)據(jù)庫訪問方法訪問所述分頁數(shù)據(jù)庫的各個(gè)分頁的 執(zhí)行結(jié)果。
【文檔編號(hào)】G06F17/30GK103853718SQ201210496069
【公開日】2014年6月11日 申請(qǐng)日期:2012年11月28日 優(yōu)先權(quán)日:2012年11月28日
【發(fā)明者】郭清, 胡迪, 潘明國 申請(qǐng)人:紐海信息技術(shù)(上海)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
青浦区| 秭归县| 厦门市| 比如县| 丰镇市| 绥阳县| 滨州市| 商河县| 贵南县| 枣强县| 肇东市| 河池市| 广汉市| 长白| 喜德县| 深圳市| 措勤县| 柳州市| 长岭县| 星座| 宁德市| 工布江达县| 乐业县| 万盛区| 秀山| 游戏| 大化| 乌鲁木齐县| 西乌珠穆沁旗| 丹东市| 洛川县| 五河县| 西吉县| 安乡县| 尼勒克县| 延庆县| 大同县| 晋州市| 新郑市| 江华| 江山市|