事务

概述

  • 事务是逻辑上的一组操作,要么全部成功,要么全部失败
  • 保证数据的安全性和完整性

事务的操作

面向数据库的操作

开启事务

start transaction;

提交事务

commit;

回滚事务

rollback;

JDBC操作数据库事务

java.sql.Connection接口的方法

开启事务

void setAutoCommit(boolean autoCommit);

默认参数为true,即为自动提交事务
 

提交事务

void commit();

回滚事务

void rollback();

案例

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

/**
 * @Title: JDBCDemo
 * @Description:使用Connection对象,操作事务
 * @author jsz
 * @date 2018年7月22日
 */
public class JDBCDemo {

	public static void main(String[] args) throws Exception {
		// 1.注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		// 2.获取连接
		Connection con = DriverManager.getConnection("jdbc:mysql:///itheima", "root", "root");
		// 3.开启事务
		con.setAutoCommit(false);
		// 4.编写SQL语句
		String sql = "insert into users values(?,?)";
		// 5.获取执行SQL语句的对象
		PreparedStatement pst = con.prepareStatement(sql);
		// 6.给占位符赋值
		pst.setObject(1, "tom");
		pst.setObject(2, "123");
		// 7.执行SQL语句
		int row = pst.executeUpdate();

		System.out.println(row);
		// 8.回滚事务
		con.rollback();
	}
}

DBUtils工具类操作数据库事务

QueryRunner

QueryRunner() ----->要想使用事务,必须使用无参构造

QueryRunner(DataSource ds)------>每一条sql语句都是一个独立的事务

query(Connection, String, ResultSetHandler, Object...)

update(Connection conn, String sql, Object... params)

ResultSetHandler

 

事务的特性

  • 原子性;(事务内的操作是一个整体,不可分割);
  • 一致性;(在事务开启之后,到事务提交之前,应该保证事务的操作不能改变);
  • 隔离性;(一个事务在执行期间不能受到其他事务的干扰)
  • 持久性;(事务一旦结束,结果就不能再次改变);

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值