(12)JDBC事务控制

来源:互联网 发布:windows nt安全模式 编辑:程序博客网 时间:2024/06/05 06:23
 

11,09,15

今天课堂的主要内容:

       今天课上老师主要讲的是JDBC的事务控制和批量处理。它的主要应用在,例如:银行的存取款,以及取款的记录(时间、金额等),当它完成修改账号和修改日志后,才是正确的。

1、  事务的概念:独立的工作单元(由一条或多条sql语句组成)。我们通过提交commit()或是回滚rollback()来结束事务的操作。关于事务操作的方法都位于接口java.sql.Connection中。

特点是:它是一个整体,所有sql语句、任务都完成时,才能执行。

2、  事务和ACID属性

(1)”ACID”是一个简称,每个事务处理必须满足ACID原则,即它的四种特性:

        原子性(A)

        一致性(C)

        隔离性(I)

        持久性(D)

ACID,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求.

        原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

        一致性:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。

   隔离性:两个事务的执行是互不干扰的,一个事务不可能看到其他事务运行时,中间某一时刻的数据。

         持久性:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

3、事务处理:

       select @@autocommit;         //显示是不是自动提交事务的方式

       set @@autocommit;             //手动提交操作

       strat transaction;                   //事务开始

      

update 表

  ->set name=’aaa’                            //更新

  ->where id=2;

      

       select * from 表;                 //显示

       commit;                              //提交事务。后面的已经是第二个事务。

       select * from 表;                 //查看提交后

      

       rollback;                              //回滚事务,回到事务开始之前的状态

       select * from 表;                 //回到之前的状态

 

       start transaction;                   //开始事务

       update 表;

  ->set name=’bbb’                    //更新

  ->where id=3;

       select *from 表;                  //查看

       savepoint s1;                        //设置保存点

       delete from 表

   ->id=1;                                 //删除

       rollback work to savapoint s1;      //把事务回滚到保存点,回滚点之前的被保存下来。

       commit;                              //提交

       select * from 表;

4、

JDBC工具类

它的功能:

1 获得Connection

2 String转Integer

3 select tabl

4 读取任意结果

5 关连接

5、事务隔离级别:

       在多线程并发访问数据库并且使用事务的时候,可能会遇到脏读、不可重复读、幻读的情况。需要设置隔离级别来避免。

(1)       脏读:独到的线程未提交的数据

(2)       不可重复读:在一个事务中读取同一个记录两次,获取数据不同

(3)       幻读:在一个事务中,读取到的记录数不同

  隔离级别:

       读未提交:很少用到

       读已提交:可支持不出现脏读

       可重复读:默认级别,根据需要进行设置

       可序列化:是最高的级别,可串行化

 老师上课演示了在两个控制台窗口中 演示的隔离级别的问题。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 麦芒6扬声器坏了怎么办 华为手机2s太卡怎么办 华为麦芒6网速慢怎么办 华为麦芒5太卡怎么办 小米note3拍照反应慢怎么办 华为刷机后还要账号密码怎么办 刷机后忘记华为账号和密码怎么办 荣耀7x耗电快怎么办 小米2s死机后怎么办? 电信合约卡不想用了怎么办 vivo合约机掉了怎么办 华为合约机丢了怎么办 两年合约机掉了怎么办 电信合约机丢了怎么办 s8合约机坏了怎么办 合约机的卡掉了怎么办 移动合约机屏幕碎了怎么办 5s用不了电信卡怎么办 vivo手机4g信号差怎么办 电信dns辅服务器未响应怎么办 笔记本wifi下载速度慢怎么办 苹果wifi下载速度慢怎么办 小米手机wifi下载速度慢怎么办 苹果8plus上网慢怎么办 小米5c死机了怎么办 苹果x自拍反方向怎么办 硅胶手机壳出油怎么办 指环扣松了怎么办图解 塑料放久了发粘怎么办 橡胶时间久了粘怎么办 胶的手机套变黄怎么办 手机壳硅胶变黄怎么办 硅胶手机壳大了怎么办 硅胶手机壳变大了怎么办 硅胶手机壳有点大怎么办 硅胶手机壳粘手怎么办 透明手机壳变黄怎么办? 耳机胶套经常掉怎么办 硅胶手机壳粘毛怎么办 耳机海绵套坏了怎么办 沙发垫海绵坏了怎么办