奋斗了好几个晚上调试程序,写了好几篇博客,终于建立起了Mybatis配置的扩展机制。虽然扩展机制是重要的,然而如果没有真正实用的扩展功能,那也至少是不那么鼓舞人心的,这篇博客就来举几个扩展的例子。

这次研读源码的起因是Oracle和MySQL数据库的兼容性,比如在Oracle中使用双竖线作为连接符,而MySQL中使用CONCAT函数;比如Oracle中可以使用DECODE函数,而MySQL中只能使用标准的CASE WHEN;又比如Oracle中可以执行DELETE FORM TABLE WHERE FIELD1 IN (SELECT FIELD1 FORM TABLE WHERE FIELD2=?),但是MySQL中会抛出异常,等等。下面就从解决这些兼容性问题开始,首先需要在配置中添加数据库标识相关的配置:

移动开发培训,Android培训,安卓培训,手机开发培训,手机维修培训,手机软件培训

<!-- 自行构建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>
    <!-- 数据库产品标识配置 -->
    <property name="databaseIdProvider">
        <bean class="org.apache.ibatis.mapping.VendorDatabaseIdProvider">
            <property name="properties">
                <props>
    &nbs