奮斗了好幾個晚上調(diào)試程序,寫了好幾篇博客,終于建立起了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ù)庫標識相關(guān)的配置:

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

<!-- 自行構(gòu)建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
        
		

網(wǎng)友評論