邹瑞20201215

总结

Mybatis连接池

在 Mybatis 的 SqlMapConfig.xml 配置文件中,通过来实现 Mybatis 中连接 池的配置。

Mybatis 将它自己的数据源分为三类:

  1. UNPOOLED 不使用连接池的数据源
  2. POOLED 使用连接池的数据源
  3. JNDI 使用 JNDI 实现的数据源

相应地,MyBatis 内部分别定义了实现了 java.sql.DataSource 接口的 UnpooledDataSource, PooledDataSource 类来表示 UNPOOLED、POOLED 类型的数据源。

对于JNDI类型的数据源DataSource,则是通过JNDI上下文中取值 在这三种数据源中,我们一般采用的是 POOLED 数据源(很多时候我们所说的数据源就是为了更好的 管理数据库连接,也就是我们所说的连接池技术)。

我们的数据源配置就是在 SqlMapConfig.xml 文件中,具体配置如下:

MyBatis 在初始化时,根据的 type 属性来创建相应类型的的数据源 DataSource,即: type=”POOLED”:MyBatis 会创建 PooledDataSource 实例

type=”UNPOOLED” : MyBatis 会创建 UnpooledDataSource 实例

type=”JNDI”:MyBatis 会从 JNDI 服务上查找 DataSource 实例,然后返回使用

Mybatis 中 DataSource 的创建

MyBatis 是 通 过 工 厂 模 式 来 创 建 数 据 源 DataSource 对 象 的 , MyBatis 定 义 了 抽 象 的 工 厂 接口:org.apache.ibatis.datasource.DataSourceFactory,通过其getDataSource()方法返回数据源 DataSource。

Mybatis 的事务控制

在 JDBC 中我们可以通过手动方式将事务的提交改为手动方式,通过 setAutoCommit()方法就可以调 整。Mybatis 框架因为是对 JDBC 的封装,所以 Mybatis 框架的事务控制方式,本身也是用 JDBC 的setAutoCommit()方法来设置事务提交方式的。

在连接池中取出的连接,都会将调用 connection.setAutoCommit(false)方法,这样 我们就必须使用 sqlSession.commit()方法,相当于使用了 JDBC 中的 connection.commit()方法实现事 务提交。

动态标签之 标签

delete from userinfo

{id}

parameterType 为 list,java.util.List,java.util.ArrayList均可以,切记不可以为Array/array.
标签用于遍历集合,它的属性:
collection:代表要遍历的集合元素,注意编写时不要写#{}
1).如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
2).如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
3).如果使用Map或对象封装了,collection的属性值为对应的Key
open:代表语句的开始部分
close:代表结束部分
item:代表遍历集合的每个元素,生成的变量名
sperator:代表分隔符

评论