事务处理

mysql中的事务处理:用dos窗口操作(注意engine myisam 不会使用事务)
事务就是一系列操所数据库中的语句,要么全部成功,要么全部失败
事务的特性:原子性,一致性,隔离型,持久性
start transaction; #开启事务
rollback;#回滚事务,如果在一系列操作中间出现异常,可以使用,返回到开启事务之前的状态
commit;#提交事务,当一系列操作全部成功,就要提交,就会永久保存
JDBC中控制事务
Connection conn;//表示连接对象
conn.setAutoCommit(false);//开启事务
conn.rollback();//回滚事务
conn.commit();//提交事务

还可以设置回滚点,回滚到回滚点
Savepoint sp=conn.setSavepoint();
conn.rollback(sp);
conn.commit();

建表语句:

create table account(
id int not null primary key,
name varchar(30) not null,
accNum varchar(40) not null unique,
money decimal(10,2) not null default 0.00
);
insert into account values (1,'zhangsan','123',100000);
insert into account values (2,'lisi','124',1000000);

 

 

具体实现代码:JdbcUtil.getConnection();获取连接对象

package com.itheima.test;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

import com.ithiema.util.JdbcUtil;

public class Demo1 {
	public static void main(String[] args) {
		Connection conn=JdbcUtil.getConnection();
		String sql1="update account set money=money-10000 where accNum='124'";
		String sql2="update account set money=money+10000 where accNum='123'";
		Statement stmt=null;
		try {
			conn.setAutoCommit(false);
			stmt=conn.createStatement();
			stmt.executeUpdate(sql1);
			int i=1/0;
			stmt.executeUpdate(sql2);
			conn.commit();
		} catch (SQLException e) {
			try {
				conn.rollback();
				conn.commit();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			e.printStackTrace();
		}
		
	}
}

 

转载于:https://www.cnblogs.com/lzzhuany/p/4964168.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值