DAO
http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html
一个配置了“_databaseId”变量的 databaseIdProvider 可用于动态代码中,这样就可以根据不同的数据库厂商构建特定的语句。比如下面的例子:
<insert id="insert">
<selectKey keyProperty="id" resultType="int" order="BEFORE">
<if test="_databaseId == 'oracle'">
select seq_users.nextval from dual
</if>
<if test="_databaseId == 'db2'">
select nextval for seq_users from sysibm.sysdummy1"
</if>
</selectKey>
insert into users values (#{id}, #{name})
</insert>
SqlSessionFactory初始化
VendorDatabaseIdProvider vendorDatabaseIdProvider = new VendorDatabaseIdProvider();
Properties properties = new Properties();
properties.put("MySQL", "mysql");
properties.put("Oracle", "oracle");
properties.put("DB2", "db2");
properties.put("PostgreSQL", "postgres");
properties.put("Adaptive Server Enterprise", "sybase");
vendorDatabaseIdProvider.setProperties(properties);
sqlSessionFactoryBean.setDatabaseIdProvider(vendorDatabaseIdProvider);