连接池
-
连接池:用于存储连接的一个容器,容器其实就是一个集合对象,该集合必须是线程安全的,不能两个线程拿到同一连接,该集合还必须实现队列的特性:先进先出
首先创建很多连接,使用时直接取出。线程使用完连接,连接重新回到连接池
可以减少获取连接所消耗的时间 -
mybatis中的连接池:提供类3种方式的配置
配置的位置:主配置文件SqlMapConfig.xml中的dataSource标签,type属性就是表示采用何种连接池表示方式
type取值:1) POOLDE:采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现
2) UNPOOLED :采用传统的获取连接的方式,虽然也实现了javax.sql.DataSource接口,但是并没有使用池的思想
3) JNDI : 采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到的DataSoource是不一样的
注意:如果不是web或者maven的war工程,是不能使用的。
tomcat服务器采用的连接池就是dbcp连接池。
JNDI: 模拟windows的注册表:
mybatis中的事务
什么是事务
事务的四大特性ACID
不考虑隔离性会产生的3个问题
解决方法:四种隔离级别mybatis中的事务通过SqlSession对象的commit方法和rollback方法实现事务的提交和回滚
实现自动提交:
//获取SqlSession,true自动提交
session = factory.openSession(true);
参考视频:https://www.bilibili.com/video/av47952553/?p=44