MyBatis的两个内置函数

Posted 梦里梦外

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis的两个内置函数相关的知识,希望对你有一定的参考价值。

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>

参考:https://www.cnblogs.com/a-small-lyf/p/10324985.html

以上是关于MyBatis的两个内置函数的主要内容,如果未能解决你的问题,请参考以下文章

mybatis动态sql中的两个内置参数(_parameter和_databaseId)

VBS 环境下如何调用EXCEL内置函数

[mybatis]动态sql_内置参数_parameter&_databaseid

markdown [mybatis参考]关于mybatis #mybatis的一些片段

有没有办法将2个非常相似的代码片段组合成一个函数并重复?

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段