當前位置:成語大全網 - 書法字典 - mybatis是如何實現兩個數據庫兼容的?

mybatis是如何實現兩個數據庫兼容的?

方法:在系統運行過程中,根據不同的數據庫類型加載不同文件路徑下的sqlmap配置。開發人員要做的仍然是愉快地編寫原始數據庫語句,而不是為多數據庫兼容性而絞盡腦汁。

分析問題:

1.要解決ibatis多數據庫兼容的問題,實際上ibatis可以自動選擇不同數據庫的sqlmap配置文件。

2.打開ibatis源代碼項目並跟蹤代碼,最後在com找到它。ibatis.sqlmap.engine.builder.xml.sqlmapconfigparser.java,系統中運行的所有sqlmap節點都從這裏統壹轉換和加載。

3.很明顯,SqlMapConfigParser源代碼中的addSqlMapNodelets負責解析“/sqlMapConfig/sqlMap”路徑,即sqlMap文件路徑。

4.要實現“多數據庫兼容”,只需在這裏轉換此方法。

解決方案:

1,首選是我們在

2.重新構造SqlMapConfigParser的addSqlMapNodelets方法。

“1)最好獲取單個sqlmap文件的位置,如sqlmap主目錄\ xxx.xml

2)根據上面設置的DBProductName屬性值獲取數據庫類型;

3)將sqlmap的文件路徑重新定位到正在運行的數據庫類型文件。例如,sqlmap主目錄\mysql\XXX.xml表示程序當前正在msql數據庫上運行,並加載與系統的mysql數據庫對應的sqlmap文件。"

4.好了,現在ibatis支持“多數據庫兼容性”(完整源代碼見附件)。

如何使用:

1.編譯SqlMapConfigParser.class生成的可執行文件SqlMapConfigParser.class(見附件),並將其覆蓋文件添加到ibatis.jar

2.在存儲系統sqlmap配置文件的主目錄中添加多數據庫兼容支持的子目錄,如src\conf\mapping,如src \ conf \ mapping \ MySQL、src \ conf \ mapping \ Oracle等。

3.根據實際項目需要編寫多數據庫sqlmap配置文件。註意:不同的數據庫類型需要確保它們具有相同的sqlmap配置文件名和sql節點名。

4.在ibatis主配置文件(如sql-map-config.xml)中,《setting & gt指定當前程序運行的數據庫類型。