邹瑞20201215
总结
Mybatis连接池
在 Mybatis 的 SqlMapConfig.xml 配置文件中,通过来实现 Mybatis 中连接 池的配置。
Mybatis 将它自己的数据源分为三类:
- UNPOOLED 不使用连接池的数据源
- POOLED 使用连接池的数据源
- 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:代表分隔符
评论