Mybatis支持多数据库类型

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);

猜你喜欢

转载自blog.csdn.net/a860MHz/article/details/87109271