mybatis的两个内置参数
1,_parameter 代表整个参数
单个参数,_parameter 就是这个参数
多个参数 会被封装成一个map,_parameter就是代表这个map
例如接口中有一个方法 public List<Employee> getEmpsTestInnerParameter(Employee employee);
_parameter就代表employee对象
2,_databaseId 如果配置了databaseIdProvider标签, _databaseId就是代表当前数据库的别名,mysql或者oracle等等。
在mybatis配置文件中配置
<databaseIdProvider type="DB_VENDOR"> <!-- 为不同的数据库厂商起别名 --> <property name="MySQL" value="mysql"/> <property name="Oracle" value="oracle"/> <property name="SQL Server" value="sqlserver"/> </databaseIdProvider>
也可以配置多个数据库环境 通过改变default的value来切换数据库
如:
<environments default="dev_oracle">
<!--mysql环境-->
<environment id="dev_mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
<!--Oracle环境-->
<environment id="dev_oracle">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${orcl.driver}" />
<property name="url" value="${orcl.url}" />
<property name="username" value="${orcl.username}" />
<property name="password" value="${orcl.password}" />
</dataSource>
</environment>
</environments>
示例
<select id="getEmpByDataBaseId" resultType="emp"> <if test="_databaseId=='mysql'"> select * from employee <if test="_parameter!=null"> where last_name=#{_parameter.lastName} </if> </if> <if test="_databaseId=='oracle'"> select * from employees_tbl </if> </select>