批处理和事务处理以及连接池
一、批处理
用于批量操作数据,一般用于批量插入数据。
作用减少与数据库的交互 提高执行性能
批处理的几种方式:
1.1、批处理执行多条SQL语句,SQL语句不通;
1.2、批处理插入100条记录 SQL语句相同 只是参数不同 采用预处理方式
1.3 批量插入1000条记录 需要分批次的去提交
二、事务
2.1什么是事务:多条语句的执行看成是一个整体,放入事务,要么都成功,要么都失败。
2.2事务的应用场景:安全性较高的应用中:电商系统、金融系统
2.3事务处理的图例说明:
注意:如果没有开启事务 默认自动提交到数据库
三、事务特性
3.1特性:ACID-原子性、一致性、隔离性、持久性
3.2特性说明:原子性:一套事务要么都成功 要么都失败
一致性:最终的结果不会改变–例如转账功能 一方减少而另一方增加
最终的总金额不变
隔离性:处在事务中的执行操作,不会受到其他执行操作的影响
持久性:提交了或者回滚了事务,最终都永久性的写入到数据中
3.3事务的隔离级别:
3.3.1隔离异常:
查询数据库的默认隔离级别
脏读:一个线程中的事务读到了另外一个事务中未提交的数据
不可重复读:一个线程中的事务读到了另一个线程中已经提交的update数据
虚读:一个线程中的事务读到了另一个线程中已经提交的insert数据
3.3.2在数据库中可以设置隔离级别,隔离级别越高越安全 但是性能越低
3.3.3可以通过隔离级别避免异常
READ UNCOMMITTED:脏读、不可重复读、虚读都有可能发生
READ COMMITTED :避免脏读
REPEATABLE READ:避免脏读、不可重复读
SERIALIZABLE :避免脏读、不可重复度、虚读
3.3.4设置隔离级别
查看当前的隔离级别:select @@tx_isolation;
设置当前的事务隔离级别:set transaction isolation level 级别;
MySQL默认为REPEATABLE READ;ORACLE默认READ COMMITTED
四、数据库连接池
4.1什么是数据库连接池
提高数据库连接的创建和销毁的性能
理解复用机制:连接对象使用完之后回收到连接池 并不会销毁
4.2建立连接池的标准-DateSource
4.2.1目的:连接池的产品多样,为了统一连接池产品的操作
4.2.2技术点:接口与实现类
连接池标准接口 DataSource
实现类:C3P0 DBCP等产品
4.2.3注意连接对象的关闭=本质是回收到连接池
采用DBCP数据库连接池如下为主要代码:
注:在使用前 一定要修改配置文件中的内容为符合本地数据库的连接以及登录用户密码;
需要有配置文件 配置文件的加载如下(实现功能得加载了DBCP的配置jar包)
这里是把配置文件放在了资源目录下
采用C3p0数据库连接池 (注意配置文件需要放在资源目录下)