MyBatis框架

3.5 environments 環(huán)境配置

  • MyBatis可以配置多種環(huán)境,比如開發(fā)、測試和生產(chǎn)環(huán)境需要有不同的配置
  • 每種環(huán)境使用一個environment標簽進行配置并指定唯一標識符
  • 可以通過environments標簽中的default屬性指定一個環(huán)境的標識符來快速的切換環(huán)境
  • environment-指定具體環(huán)境

id:指定當前環(huán)境的唯一標識

transactionManager、和dataSource都必須有

<environments?default="oracle">

<environment?id="mysql">

<transactionManager?type="JDBC"?/>

<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>

?<environment?id="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>

  • transactionManager

type: ?JDBC | MANAGED | 自定義

JDBC:使用了 JDBC 的提交和回滾設置,依賴于從數(shù)據(jù)源得到的連接來管理事務范 ??圍。 JdbcTransactionFactory

MANAGED:不提交或回滾一個連接、讓容器來管理事務的整個生命周期(比如 JEE ??應用服務器的上下文)。 ManagedTransactionFactory

自定義:實現(xiàn)TransactionFactory接口,type=全類名/別名

  • dataSource

type: ?UNPOOLED | POOLED | JNDI | 自定義

UNPOOLED:不使用連接池, UnpooledDataSourceFactory

POOLED:使用連接池, PooledDataSourceFactory

JNDI: 在EJB 或應用服務器這類容器中查找指定的數(shù)據(jù)源

自定義:實現(xiàn)DataSourceFactory接口,定義數(shù)據(jù)源的獲取方式。

  • 實際開發(fā)中我們使用Spring管理數(shù)據(jù)源,并進行事務控制的配置來覆蓋上述配置

3.6 mappers 映射器

  • 用來在mybatis初始化的時候,告訴mybatis需要引入哪些Mapper映射文件
  • mapper逐個注冊SQL映射文件

resource : 引入類路徑下的文件

url : ?????引入網(wǎng)絡路徑或者是磁盤路徑下的文件

class : ???引入Mapper接口.

有SQL映射文件 , 要求Mapper接口與 SQL映射文件同名同位置.

沒有SQL映射文件 , 使用注解在接口的方法上寫SQL語句.

<mappers>

<mapper?resource="EmployeeMapper.xml"?/>

<mapper?class="com.atguigu.mybatis.dao.EmployeeMapper"/>

<package?name="com.atguigu.mybatis.dao"/>

</mappers>

  • 使用批量注冊,這種方式要求SQL映射文件名必須和接口名相同并且在同一目錄下

<mappers>

<package?name="com.atguigu.mybatis.dao"/>

</mappers>