溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

iBATIS不適合使用的情況有哪些

發(fā)布時(shí)間:2021-11-03 13:42:10 來源:億速云 閱讀:118 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)iBATIS不適合使用的情況有哪些的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

iBATIS不適合使用之1當(dāng)你能永遠(yuǎn)擁有完全控制權(quán)時(shí)

如果你能夠保證擁有對(duì)應(yīng)用設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì)的完全控制權(quán),那你一定是一個(gè)非常幸運(yùn)的人。這在商業(yè)環(huán)境或者任何一個(gè)核心工作不是軟件開發(fā)的行業(yè)中都是非常少見的。然而,如果你在一個(gè)軟件公司工作,并且在開發(fā)一個(gè)你擁有完全設(shè)計(jì)控制權(quán)的且由你發(fā)售的產(chǎn)品時(shí),那么你可能恰好處于這種情況。

當(dāng)你具有完全控制權(quán)時(shí),就有充分理由使用一個(gè)完全的對(duì)象/關(guān)系映射方案,如Hibernate。你可以充分利用對(duì)象/關(guān)系映射工具所能提供的設(shè)計(jì)優(yōu)勢(shì)并提高生產(chǎn)率。可能根本沒有來自企業(yè)數(shù)據(jù)庫組的干擾,也不需要與遺留系統(tǒng)整合。此外,數(shù)據(jù)庫可能是與應(yīng)用一同部署的,這使得它屬于應(yīng)用數(shù)據(jù)庫的范疇(參見第1章)。使用Hibernate的應(yīng)用的一個(gè)很好的例子就是,Atlassian的JIRA。它們提供了一個(gè)問題跟蹤軟件,作為一個(gè)他們可以完全控制的發(fā)布產(chǎn)品。

然而,還需要考慮應(yīng)用未來的發(fā)展。如果數(shù)據(jù)庫有可能超出應(yīng)用開發(fā)者的控制,那么你就必須仔細(xì)考慮一下使用對(duì)象/關(guān)系映射將對(duì)你的持續(xù)化策略帶來怎樣的影響。

iBATIS不適合使用之2當(dāng)你的應(yīng)用需要完全動(dòng)態(tài)的SQL時(shí)

如果你的應(yīng)用的核心功能是動(dòng)態(tài)生成SQL,那么iBATIS就是錯(cuò)誤的選擇。iBATIS支持非常強(qiáng)大的動(dòng)態(tài)SQL特性,這些特性又反過來支持高級(jí)查詢能力,甚至一些動(dòng)態(tài)更新功能。然而,如果你的系統(tǒng)中每個(gè)語句都是動(dòng)態(tài)地生成的,那么你***使用原始的JDBC,甚至可以創(chuàng)建你自己的框架。

iBATIS的強(qiáng)大功能之一就是它允許你擁有完全的自由,可以手工編寫和直接操作SQL。當(dāng)應(yīng)用中大部分的SQL都是從某些SQL生成類動(dòng)態(tài)地生成時(shí),這種優(yōu)勢(shì)就會(huì)很快喪失。

iBATIS不適合使用之3當(dāng)你并沒有使用關(guān)系數(shù)據(jù)庫時(shí)

對(duì)于關(guān)系數(shù)據(jù)庫之外的其他數(shù)據(jù)庫,也存在可用的JDBC驅(qū)動(dòng)。對(duì)于平板文件,微軟Excel電子數(shù)據(jù)表,XML,以及其他類型的數(shù)據(jù)存儲(chǔ)平臺(tái),都有相應(yīng)的JDBC驅(qū)動(dòng)。雖然一些人在iBATIS中使用這些驅(qū)動(dòng)也獲得了成功,但是對(duì)于大多數(shù)用戶我們并不推薦使用這些驅(qū)動(dòng)。

iBATIS并不會(huì)對(duì)你的環(huán)境做出任何假設(shè)。但是它確實(shí)期望你使用的是真正的關(guān)系數(shù)據(jù)庫,即支持事務(wù)、相對(duì)典型的SQL、和存儲(chǔ)過程這些語義的關(guān)系數(shù)據(jù)庫。即使一些非常著名的數(shù)據(jù)庫也可能不支持關(guān)系數(shù)據(jù)庫的某些重要特性。如MySQL的早期版本就不支持事務(wù),因此iBATIS不能很好地處理MySQL。幸運(yùn)的是,當(dāng)前的MySQL已支持事務(wù)并且還有一個(gè)非常符合規(guī)范的JDBC驅(qū)動(dòng)。

如果你使用的不是真正的關(guān)系數(shù)據(jù)庫,我們推薦你***使用原始的JDBC,甚至更底層的文件I/O API。

iBATIS不適合使用之4當(dāng)iBATIS不起作用時(shí)

隨著社區(qū)提出的需求越來越多,iBATIS也不斷地實(shí)現(xiàn)了許多非常好的特性。然而,iBATIS是有其自己的發(fā)展方向和設(shè)計(jì)目標(biāo)的,這樣一來它有時(shí)候就有可能會(huì)同一些應(yīng)用的需求發(fā)生沖突。人們?cè)谲浖椭驴梢酝瓿珊芏嗌衿娴氖虑?,但是有時(shí)候由于需求過于復(fù)雜,軟件可能會(huì)完全不起作用,iBATIS也是如此。雖然我們也可以在iBATIS中添加特性以支持這些復(fù)雜的需求,但是這么做可能會(huì)極大地提高復(fù)雜性,甚至可能會(huì)改變iBATIS框架的適用范圍。因此,我們不會(huì)修改框架。為了解決以上問題,我們將提供可擴(kuò)展的接口,這樣你就可以擴(kuò)展iBATIS以滿足幾乎任何需求。事實(shí)上,有時(shí)候iBATIS就是不起作用。此時(shí),***另尋一個(gè)更好的解決方案,而不是“霸王硬上弓”地將iBATIS(或者其他任何框架)用在不合適的地方。

感謝各位的閱讀!關(guān)于“iBATIS不適合使用的情況有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI