批处理和事务处理以及连接池笔记

批处理和事务处理以及连接池

一、批处理

用于批量操作数据,一般用于批量插入数据。

作用减少与数据库的交互 提高执行性能

批处理的几种方式:

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数据库连接池 (注意配置文件需要放在资源目录下)


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、事务 事务就是一个事情,组成这个事情可能有多个单元,要求这些单元,要么全都成功,要么全都不成功。在开发中,有事...
    野狗子嗷嗷嗷阅读 2,840评论 0 6
  • MySQL远程登录 MySQL MAC5.7.17及以上版本中文显示乱码问题 若编码信息如图,则无需设置。若dat...
    PengFly阅读 788评论 0 0
  • 事务 Transaction 其实指的一组操作,里面包含许多个单一的逻辑。只要有一个逻辑没有执行成功,那么都算失...
    hgzzz阅读 562评论 0 0
  • 高格调阅读 149评论 0 0
  • 实现自我价值。这到底有多形而上?具体而言之是,你生存的各种不同身份和地位的价值。再具体一点,从最小的角色(群众演员...
    弌壁阅读 637评论 0 0

友情链接更多精彩内容