在mybatis裡面設定不同資料庫執行環境和適應性問題
阿新 • • 發佈:2018-12-25
配置資料庫環境
<environments default="development">
<environment id="" >
<transactionManager type=""></transactionManager>
<dataSource type=""></dataSource>
</environment>
<environment id="" >
<transactionManager type=""></transactionManager >
<dataSource type=""></dataSource>
</environment>
</environments>
- 可以在environments標籤下配置多個environment
- 通過default屬性指定要使用的環境
- 每個environment下面要配置transactionManager和dataSource標籤,表示事務管理和資料來源
資料庫適應問題
<databaseIdProvider type="DB_VENDOR">
<property name="MySQL" value="mysql"/>
</databaseIdProvider>
- 可以得到資料庫廠商的標識,mybatis根據標識來執行不同的sql
- 需要在mapper檔案裡面的sql語句配置相應屬性
- value是為標識起別名
<select id="getEmployeeById" resultType="emp" databaseId="mysql">
select last_name as lastName, email,id,gender from employee where id = #{id} </select>- 根據最匹配原則來執行相應sql語句.
- 注意:標識一定要注意大小寫,我把MySQL寫成了MySql,結果引發了一個錯誤 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
- 注意 這條標籤一定要放置在environments標籤後,只有載入資料庫環境後才可能知道資料庫的標識。否則也會引發錯誤。