1. 程式人生 > >在mybatis裡面設定不同資料庫執行環境和適應性問題

在mybatis裡面設定不同資料庫執行環境和適應性問題

配置資料庫環境

 <environments default="development">
  <environment id="" >
    <transactionManager type=""></transactionManager>
    <dataSource type=""></dataSource>
  </environment>
   <environment id="" >
    <transactionManager type=""></transactionManager
>
<dataSource type=""></dataSource> </environment> </environments>
  1. 可以在environments標籤下配置多個environment
  2. 通過default屬性指定要使用的環境
  3. 每個environment下面要配置transactionManager和dataSource標籤,表示事務管理和資料來源

資料庫適應問題

<databaseIdProvider type="DB_VENDOR">
    <property name="MySQL"
value="mysql"/>
</databaseIdProvider>
  1. 可以得到資料庫廠商的標識,mybatis根據標識來執行不同的sql
  2. 需要在mapper檔案裡面的sql語句配置相應屬性
  3. value是為標識起別名
  4. <select id="getEmployeeById" resultType="emp" databaseId="mysql">
    select last_name as lastName, email,id,gender from employee where id = #{id} </select>
  5. 根據最匹配原則來執行相應sql語句.
  6. 注意:標識一定要注意大小寫,我把MySQL寫成了MySql,結果引發了一個錯誤 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
  7. 注意 這條標籤一定要放置在environments標籤後,只有載入資料庫環境後才可能知道資料庫的標識。否則也會引發錯誤。