语句类型 & 根据数据库加载语句
对于select,update,insert,delete
四种语句元素(标签),关于基本用法,已经了解了,现在来了解一下它们共有的两个属性:statementType
和databaseId
statementType
引用官方文档
可选 STATEMENT,PREPARED 或 CALLABLE。这会让 MyBatis 分别使用 Statement,PreparedStatement 或 CallableStatement,默认值:PREPARED。
databaseId
引用官方文档
如果配置了数据库厂商标识(databaseIdProvider),MyBatis 会加载所有不带 databaseId 或匹配当前 databaseId 的语句;如果带和不带的语句都有,则不带的会被忽略。
官方文档的表述也很容易理解,现在不明白的就是配置数据库厂商标识。
在全局配置中配置数据库厂商标识
<databaseIdProvider type="DB_VENDOR">
<property name="SQL Server" value="sqlserver"/>
<property name="DB2" value="db2"/>
<property name="Oracle" value="oracle" />
</databaseIdProvider>
在mapper文件中,就可以这样使用:
<insert id="XXX" databaseId="sqlserver">
sqlserver
在全局配置中对应SQL Server
,所以,仅在使用SQL Server
的数据库时,这条语句才会被加载。