Multi-db vendor support

If a databaseIdProvider was configured a “_databaseId” variable is available for dynamic code, so you can build different statements depending on database vendor. Have a look at the following example:

  1. <insert id="insert">
  2. <selectKey keyProperty="id" resultType="int" order="BEFORE">
  3. <if test="_databaseId == 'oracle'">
  4. select seq_users.nextval from dual
  5. </if>
  6. <if test="_databaseId == 'db2'">
  7. select nextval for seq_users from sysibm.sysdummy1"
  8. </if>
  9. </selectKey>
  10. insert into users values (#{id}, #{name})
  11. </insert>