mybatis多数据库支持databaseIdProvider标签
一、除了上篇提到的bind标签外,当数据库切换时,sql标签很多需要做相应的变化,为解决这种情况,引入了databaseIdProvider标签,让其完成多个数据库切换和sql语句的不变。
1. mybatis_config.xml中添加标签:
<databaseIdProvider type="DB_VENDOR"> <property name="SQL Server" value="sqlserver"/> <property name="DB2" value= "db2"/> <property name="Oracle Server" value="oracle"/> <property name="MySQL" value= "rnysql"/> <property name="PostgreSQL" value="postgresql"/> <property name="Derby" value= "derby"/> <property name="H2" value= "h2"/> <property name="HSQL" value= "hsqldb"/> </databaseIdProvider>
2. 对应的sql标签中添加属性databasId:
<update id="updateByMap" databaseId="mysql"> update sys_user set <foreach collection="_parameter" item="val" index="key" separator=","> ${key} = #{val} </foreach> where id = #{id} </update>
这样就能对应到各个数据库中