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