数据库连接池和事务

Mybatis连接池提供了三种配置方式

  • 配置位置:祝配置文件中的dataSource标签,type属性表示采用哪种连接池方式
  • type的属性:

    • POOLED:采用了传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现
    • UNPOOLED:采用传统的获取连接的方式,虽然也有javax.sql.DataSource接口,但是没有实现
    • JNDI:采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到的DataSource是不一样的,若不是web或maven的war工程,不可使用。

通常使用POOLED即可。

事务

在使用factory创建SqlSession对象时,有一个重载函数

public SqlSession openSession(boolean autoCommit) {
    return this.openSessionFromDataSource(this.configuration.getDefaultExecutorType(), (TransactionIsolationLevel)null, autoCommit);
}

若将参数传位true,则会自动提交事务,但是需要注意,它是在每次执行完sql语句后就会自动提交,如果需要执行多个语句后同时提交,那么就不能使用自动提交,必须手动提交。

Last modification:March 23, 2020
If you think my article is useful to you, please feel free to appreciate