没有合适的资源?快使用搜索试试~ 我知道了~
MySql事务 事务是指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么 全部不成功。就比如:转账,A转账给B100元,A-100,B+100,如果其中一个操作出现错误实现不了,就会形成误差,导致数据不对等。 mysql引擎是支持事务的,mysql默认自动提交事务。每条语句都处在单独的事务中。 手动控制事务 开启事务:start transaction | begin 提交事务:commit 回滚事务:rollback 事务的特性: 原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生 一致性:事务必须使数据库从一个一致性状态转换到另外一个一致性状态。 隔离
资源推荐
资源详情
资源评论
事务与连接池的基础学习事务与连接池的基础学习
MySql事务事务
事务是指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么 全部不成功。就比如:转账,A转账给B100元,A-100,B+100,如果其中一个操作出现错误实现不
了,就会形成误差,导致数据不对等。
mysql引擎是支持事务的,mysql默认自动提交事务。每条语句都处在单独的事务中。
手动控制事务
开启事务:start transaction | begin
提交事务:commit
回滚事务:rollback
事务的特性:
原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生
一致性:事务必须使数据库从一个一致性状态转换到另外一个一致性状态。
隔离性:事务的隔离性是多用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
持久性:指一个事务一旦被提交,它对数据库中数据的改变就是永久性的。
JDBC演示事务:
Connection conn = null;
PreparedStatement ps = null;
try {
conn = DBUtils.getConnection();
//事务开启:begin
conn.setAutoCommit(false);
//转账100
ps = conn.prepareStatement("update test set money = money - 100 where name = 'lwb'");
ps.executeUpdate();
//收到100
ps = conn.prepareStatement("update test set money = money + 100 where name = 'lwn'");
ps.executeUpdate();
//提交事务commit
conn.commit();
} catch (Exception e) {
if(conn!=null){
try {
//回滚事务 rollback
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
e.printStackTrace();
}
事务的隔离级别事务的隔离级别
三种事务可能发生的错误:
赃读:指一个事务读取了另一个事务未提交的数据。
不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同。一个事务读取到了另一个事务提交后的数据。(update)
虚读(幻读):是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。(insert)
数据库通过设置事务的隔离级别防止以上情况的发生:
READ UNCOMMITTED:
赃读、不可重复读、虚读都有可能发生
。
READ COMMITTED: 避免赃读避免赃读。
不可重复读、虚读都有可能发生
。(oracle默认的)
REPEATABLE READ:避免赃读、不可重复读避免赃读、不可重复读。
虚读有可能发生
。(mysql默认)
SERIALIZABLE: 避免赃读、不可重复读、虚读避免赃读、不可重复读、虚读。
级别越高,性能越低,数据越安全(加粗的就是避免的,斜体的就是有可能法发生的)
JDBC设置隔离等级:
Connection接口
Connection.setTransactionIsolation(int level);
level:
TRANSACTION_READ_UNCOMMITTED
TRANSACTION_READ_COMMITTED
TRANSACTION_REPEATABLE_READ
TRANSACTION_SERIALIZABLE
连接池连接池
一开始没有使用连接池的时候是这样子的:
资源评论
weixin_38701407
- 粉丝: 5
- 资源: 917
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Analytics-2024-11-07-080019.ips.ca.synced
- java订单管理系统源码ssh框架数据库 MySQL源码类型 WebForm
- DS18B20温度传感器STM32驱动头文件
- (源码)基于Spring Boot的二猫社区管理系统.zip
- content_1731501062882.xlsx
- javaswing游戏项目源码.zip
- Python实现收集器的源码.zip
- (源码)基于Java多线程的并发任务管理系统.zip
- C#在线网校考试系统源码 在线学习云服务平台源码数据库 SQL2008源码类型 WebForm
- com.sun.net.httpserver安卓HTTP服务器jar包最新版2.2.1
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功