数据库连接池和事务
Mybatis连接池提供了三种配置方式
- 配置位置:祝配置文件中的
dataSource
标签,type
属性表示采用哪种连接池方式 type
的属性:- POOLED:采用了传统的
javax.sql.DataSource
规范中的连接池,mybatis中有针对规范的实现 - UNPOOLED:采用传统的获取连接的方式,虽然也有
javax.sql.DataSource
接口,但是没有实现 - JNDI:采用服务器提供的JNDI技术实现,来获取
DataSource
对象,不同的服务器所能拿到的DataSource
是不一样的,若不是web或maven的war工程,不可使用。
- POOLED:采用了传统的
通常使用POOLED即可。
事务
在使用factory
创建SqlSession
对象时,有一个重载函数
public SqlSession openSession(boolean autoCommit) {
return this.openSessionFromDataSource(this.configuration.getDefaultExecutorType(), (TransactionIsolationLevel)null, autoCommit);
}
若将参数传位true
,则会自动提交事务,但是需要注意,它是在每次执行完sql语句后就会自动提交,如果需要执行多个语句后同时提交,那么就不能使用自动提交,必须手动提交。