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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM