04-JDBC学习手册:JDBC中使用transaction(事务)编程和Javabean定义
来源:互联网 发布:nginx 正则匹配 编辑:程序博客网 时间:2024/09/21 08:19
JDBC中使用 Transaction(事务)编程
1 事务的四大特性
事务是具备以下特征(ACID) 的工作单元:
(1) 原子性
- 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。
- 原子操作,也就是不可分割的操作,必须 一起成功一起失败。
(2) 一致性
- 事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。
(3) 分离性
- 分离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。
(4) 持久性
- 持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS 保证它对数据库中数据的改变应该是永久性的,耐得住任何系统故障。持久性通过数据库备份和恢复来保证。
2 事务处理三步曲
① connection.setAutoCommit(false); // 把自动提交关闭② 正常的DB操作 // 若有一条 SQL 语句失败了,自动回滚③ connection.commit() // 主动提交 或 connection.rollback() //主动回滚
完整的代码片段:try{ con.setAutoCommit(false); //step ① 把自动提交关闭 Statement stm = con.createStatement(); stm.executeUpdate("insert into person(id, name, age) values(520, 'X-Man', 18)"); stm.executeUpdate("insert into Person(id, name, age) values(521, 'Super', 19)"); //step ② 正常的 DB 操作 con.commit(); //step ③ 成功主动提交} catch(SQLException e){ try{ con.rollback(); } catch(Exception e){ e.printStackTrace(); } //step ③ 失败则主动回滚}
3 JDBC 事务及事务隔离级别
JDBC 事务并发产生的问题:
① 脏读(Dirty Reads ) 一个事务读取了另一个并行事务还未提交的数据。
② 不可重复读( UnRepeatable Read ) 一个事务再次读取之前的数据时,得到的数据不一致,被另一个已提交的事务修改。
③ 幻读(Phantom Read ) 一个事务重新执行一个查询,返回的记录中包含了因为其它最近提交的事务而产生的新记录。
为了避免以上三种情况的出现,则采用
事务隔离级别:
以 上 的 五 个 事 务 隔 离 级 别 都 是 在 Connection 类 中 定 义 的 静 态 常 量 , 使 用setTransactionIsolation(int level) 方法可以设置事务隔离级别。
比如:con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
二、JavaBean 的定义
1 是一个普通的 Java 类2 在结构上没有预先的规定,不需要容器,不需要继承类或实现接口3 要求必须放在包中,要求实现 Serializable 接口4 要求有一个无参的构造方法.5 属性的类型必须保持唯一,get 方法返回值必须和 set 方法参数类型一致6 对每个属性要有对应的 get 和 set 方法。注:隐藏属性可以没有7 可以有外观作为显示控制,事件机制。
阅读全文
0 0
- 04-JDBC学习手册:JDBC中使用transaction(事务)编程和Javabean定义
- JDBC总结05-JDBC 中使用 Transaction 编程(事务编程)
- JDBC之Transaction(事务)
- JTA(Java Transaction API)和JDBC事务
- java transaction api和jdbc事务
- JDBC中使用事务编程步骤
- JDBC学习第三站之使用 Transaction 编程
- JDBC(9)—事务(Transaction)
- JavaBean中使用JDBC事务处理
- JDBC之Transaction(事务),SetAutoCommit保证事务原子性
- hibernate,spring管理事务中(transaction,JDBC connection,Hibernate Session的使用)
- 在JDBC中使用事务
- JDBC中事务的使用
- JDBC中事务的使用
- JDBC中事务的使用
- JDBC中事务的使用
- JDBC中事务的使用
- JDBC中事务的使用
- 资源分享 | 摄影视频 | 杨最醉摄影视频(1-7)
- CodeVS 1288 迭代加深 解题报告
- 22 制作安装包,让用户安装程序
- 刷清橙OJ--A1036.分解质因数
- 数据结构之杨辉三角实现
- 04-JDBC学习手册:JDBC中使用transaction(事务)编程和Javabean定义
- 历届试题 城市建设
- [LeetCode]415. Add Strings(计算两个字符串表示的数字的和)
- Linux中MySQL中文乱码
- sublime 搭建 python 开发环境
- Collection与Collections的区别
- MongoDB(二)
- POJ 2914 Minimum Cut (最小割模板题)
- mui 头部tab代码2