奮斗了好幾個晚上調試程序,寫了好幾篇博客,終于建立起了Mybatis配置的擴展機制。雖然擴展機制是重要的,然而如果沒有真正實用的擴展功能,那也至少是不那么鼓舞人心的,這篇博客就來舉幾個擴展的例子。

這次研讀源碼的起因是Oracle和MySQL數(shù)據(jù)庫的兼容性,比如在Oracle中使用雙豎線作為連接符,而MySQL中使用CONCAT函數(shù);比如Oracle中可以使用DECODE函數(shù),而MySQL中只能使用標準的CASE WHEN;又比如Oracle中可以執(zhí)行DELETE FORM TABLE WHERE FIELD1 IN (SELECT FIELD1 FORM TABLE WHERE FIELD2=?),但是MySQL中會拋出異常,等等。下面就從解決這些兼容性問題開始,首先需要在配置中添加數(shù)據(jù)庫標識相關的配置:

移動開發(fā)培訓,Android培訓,安卓培訓,手機開發(fā)培訓,手機維修培訓,手機軟件培訓

<!-- 自行構建Configuration對象 -->    <bean id="mybatisConfig" class="org.dysd.dao.mybatis.schema.SchemaConfiguration"/><bean id="sqlSessionFactory" p:dataSource-ref="dataSource" 
    class="org.dysd.dao.mybatis.schema.SchemaSqlSessionFactoryBean">
    <!-- 注入mybatis配置對象 -->
    <property name="configuration" ref="mybatisConfig"/>
    <!-- 自動掃描SqlMapper配置文件 -->
    <property name="mapperLocations">
        <array>
            <value>classpath*:**/*.sqlmapper.xml</value>
        </array>
    </property>
    <!-- 數(shù)據(jù)庫產(chǎn)品標識配置 -->
    <property name="databaseIdProvider">
        <bean class="org.apache.ibatis.mapping.VendorDatabaseIdProvider">
            <property name="properties">
                <props>
    &nbs