根據變量值動態執行不同 sql 語句
在使用 mybatis 編寫 xml 配置文件時,可以利用 if 標簽根據變量值動態執行 sql 語句,實現不同數據庫的兼容。
比如,有一個全局配置類 globalvariable:
對應的 xml 文件可以按如下編寫,以實現根據 databasetype 判斷執行不同 sql 語句:
... <select id="selectone"> <if test="databasetype == 1"> ... </if> <if test="databasetype == 2"> ... </if> </select> ...
登錄后復制
這樣,就可以根據數據庫類型的不同,執行不同的 sql 語句。
此外,mybatis 還有自帶的數據庫廠商標識(databaseidprovider),可以根據數據庫的不同自動選擇執行對應的 sql 語句。
比如,可以按照如下配置:
... <select id="selectAll" resultType="com.alen.trial.multilds.model.Multil" databaseId="mysql"> select * from multil </select> <select id="selectAll" resultType="com.alen.trial.multilds.model.Multil" databaseId="oracle"> select id from multil </select> ...
登錄后復制
這樣,不同數據庫的 sql 語句就會根據數據庫廠商標識自動選擇執行。