MyBatis框架

3.5 environments 環(huán)境配置

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

id:指定當(dāng)前環(huán)境的唯一標(biāo)識(shí)

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è)置,依賴于從數(shù)據(jù)源得到的連接來(lái)管理事務(wù)范 ??圍。 JdbcTransactionFactory

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

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

  • dataSource

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

UNPOOLED:不使用連接池, UnpooledDataSourceFactory

POOLED:使用連接池, PooledDataSourceFactory

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

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

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

3.6 mappers 映射器

  • 用來(lái)在mybatis初始化的時(shí)候,告訴mybatis需要引入哪些Mapper映射文件
  • mapper逐個(gè)注冊(cè)SQL映射文件

resource : 引入類路徑下的文件

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

class : ???引入Mapper接口.

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

沒(méi)有SQL映射文件 , 使用注解在接口的方法上寫SQL語(yǔ)句.

<mappers>

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

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

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

</mappers>

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

<mappers>

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

</mappers>