如果你從事軟體開發工作有了一段時間的話,那麼肯定聽過關於「自己動手還是花錢購買」 的爭論。該爭論是說,針對乙個業務問題,我們是應該自己動手構建自己的解決方案呢,還是應 該花錢購買乙個聲稱已經解決了此問題的軟體包。通常付出的代價是差不多的(否則也就沒什麼好爭論的了),但真正的權衡其實在於「自己動手所要花費的時間」與「花錢購買來的軟體包和 我們要解決的問題的契合度」。自己構建的軟體當然能恰到好處地符合業務需求,但實現它確實 需要更多的時間。購買軟體包當然非常迅速,但有時又不一定能滿足我們所有的需求。基於這個 原因,當決定購買軟體包時,我們往往會在買回以後對它進行改造,修改它的私有資料庫,擴充套件 它所遺漏的特徵,這樣就可以兩全其美了。
我們其實可以好好討論一下深入別人的私有資料庫並修改它是一件多麼麻煩的事,但在此我想告訴你的只有一句話,私有資料庫絕不是為了方便第三方修改而設計的。其設計中往往充滿了假設、限制以及非標準的資料型別,還有其他像「請勿修改,否則後果自負」這樣的警告訊號。 但企業為了省錢,往往會不顧這些警告訊號而做出一些驚人的事情。因此軟體開發人員就注定要 深陷在這些私有資料庫構成的叢林中,艱難探索了。
mybatis在處理私有資料庫時同樣是乙個非常優秀的持久化框架。通常這樣的資料庫只允許只 讀訪問,使用mybatis時,對這樣的需求你大可放心,因為你可以限制執行的sql的類別。當需求 不允許資料庫更新時,mybatis絕不會對資料庫執行任何神奇的更新操作。當需要更新時,私有資料庫往往對資料的組織方式非常挑剔。mybatis允許編寫非常特定的更新語句以處理這種情況。
如果說有什麼東西的存在是現代物件導向軟體開發人員的禍害的話,那麼無疑是遺留資料庫 了。遺留資料庫往往是曾經的企業資料庫。它們具有企業資料庫的各種複雜性和依賴關係。此外, 它們還具有長年累月的修改、快速修正、掩飾、繞彎路、繃帶解決方案以及技術限制所帶來的無盡的「傷痕」。更重要的是,遺留資料庫通常是在不僅已經過時而且有時已完全不被支援的老式 平台上開發出來的。因此對於現代開發人員來說可能已經沒有適當的驅動程式和開發工具可用 了。
mybatis對於遺留資料庫同樣是有幫助的。只要你正在工作的系統有合適的資料庫驅動程式可用,mybatis就可以像對其他任何資料庫那樣發揮作用。事實上,mybatis可能是處理遺留資料庫問題最好的持久化框架了,因為它對資料庫的設計沒有做任何假設,所以即使是對於最讓開發人員頭痛的遺留資料庫,它也可以處理。
系列文章:
mybatis知多少(1)
mybatis知多少(2)
mybatis知多少(3)
mybatis知多少(4)mybatis的優勢
mybatis知多少(5)業務物件模型
mybatis知多少(6)表現層與業務邏輯層
mybatis知多少(7)持久層
mybatis知多少(8)關係型資料庫
mybatis知多少(9)不同型別的資料庫
mybatis知多少(10)應用程式資料庫
mybatis知多少(11)企業資料庫
MyBatis知多少(11)企業資料庫
企業資料庫比應用程式資料庫更大,其外部影響也更大。它們與其他系統之間存在更多的關係,包括依賴關係和被依賴關係。這些關係可能是web應用程式與報表工具之間的,但也很有可 能是與其他的複雜系統和資料庫的介面。在企業資料庫中,不僅僅存在遠比應用程式資料庫多得 多的外部介面,而且這些介面的作用方式也大不相同...
mybatis 沒有資料插入,有資料更新
on duplicate key update 該語句是基於唯一索引或主鍵使用,比如乙個欄位a被加上了unique index,並且表中已經存在了一條記錄值為1,下面兩個語句會有相同的效果 insert into table a,b,c values 1,2,3 on duplicate key u...
執行緒特定 私有 資料
簡單的講,執行緒特定 私有 資料是每個執行緒的區域性變數,更改執行緒a中的執行緒特定 私有 資料,並不會影響到執行緒b中相對應的執行緒特定 私有 資料。常見的errno就是執行緒特定 私有 資料,每個執行緒重置errno的操作並不會影響程序中其他執行緒的errno值。下面介紹下執行緒特定資料的使用技...