`
yanguz123
  • 浏览: 556466 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JDBC事务操作

    博客分类:
  • Code
阅读更多

 

 

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

public class JDBC {

	// static final的常量:1.直接初始化;2.通过static代码块初始化
	private static final String url;
	private static final String user;
	private static final String password;
	private static final String driver;
	private static final String sql1 = "";
	private static final String sql2 = "";

	// 通过static代码块初始化常量也是可行的
	static {
		url = "";
		user = "";
		password = "";
		driver = "";
	}

	public void jdbc() {
		try {
			// 实例化驱动
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		Connection con = null;
		PreparedStatement ps1 = null;
		PreparedStatement ps2 = null;
		Savepoint savepoint = null;

		try {
			// 获取数据库连接
			con = DriverManager.getConnection(url, user, password);
			// 设置自动提交为false
			con.setAutoCommit(false);
			// 设置事务隔离级别
			con.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
			// 进行事务操作
			ps1 = con.prepareStatement(sql1);
			int rs1 = ps1.executeUpdate(sql1);

			// 设置保存点
			savepoint = con.setSavepoint("SavePoint1");

			ps2 = con.prepareStatement(sql2);
			int rs2 = ps2.executeUpdate(sql2);
			// 提交事务
			con.commit();
			// 设置事务自动提交为true
			con.setAutoCommit(true);
		} catch (SQLException e) {
			e.printStackTrace();
			try {
				if (savepoint == null) {
					// 事务回滚到保存点
					con.rollback(savepoint);
					// 再提交事务
					con.commit();
				} else {
					// 直接回滚
					con.rollback();
				}
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
		} finally {

			// 倒序关闭

			try {
				if (ps1 != null) {
					ps1.close();
				}
			} catch (SQLException e1) {
				e1.printStackTrace();
			}

			try {
				if (ps2 != null) {
					ps2.close();
				}
			} catch (SQLException e1) {
				e1.printStackTrace();
			}

			try {
				if (con != null) {
					con.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}

		}

	}
}

 

 

分享到:
评论

相关推荐

    JDBC事务操作例子所需jar包

    JDBC事务操作例子所需jar包JDBC事务操作例子所需jar包JDBC事务操作例子所需jar包JDBC事务操作例子所需jar包

    19-事务-源代码.rar

    二、JDBC事务操作 三、DBUtils事务操作 四、使用ThreadLocal绑定连接资源 五、事务的特性和隔离级别(概念性问题---面试)。 1.什么是事务 2.mysql的事务 1.QueryRunner 1.事务的特性ACID 2.并发访问问题----由...

    Spring JDBC与事务管理

    (2)(2) 在BookShopDao中添加一个purchase购书方法,其操作流程是获取书的单价->买书(更新库存)->更新账户余额,在BookShopDaoImp中实现该方法,并使用基于XML和Annotation的声明式事务管理来确保该购书过程能正常...

    JDBC专题(五)-JDBC专题-JDBC事务.docx

    2.MySQL数据库中操作事务命令 2.1.编写测试SQL脚本,如下: 2.2.开启事务(start transaction) 2.3.提交事务(commit) 2.4回滚事务(rollback) 3.JDBC中使用事务 3.1.JDBC使用事务范例 3.2设置...

    JavaBean中使用JDBC方式进行事务处理

    JavaBean中使用JDBC方式进行事务处理方案 有详细的事物处理代码

    JDBC中操作Blob、Clob等对象 实例详细 非常详细

    JDBC中操作Blob、Clob等对象 实例详细JDBC中操作Blob、Clob等对象 实例详细JDBC中操作Blob、Clob等对象 实例详细JDBC中操作Blob、Clob等对象 实例详细JDBC中操作Blob、Clob等对象 实例详细JDBC中操作Blob、Clob等...

    JavaEE的Spring JDBC与事务管理 实验

    (2) 在BookShopDao中添加一个purchase购书方法,其操作流程是获取书的单价->买书(更新库存)->更新账户余额,在BookShopDaoImp中实现该方法,并使用基于XML和Annotation的声明式事务管理来确保该购书过程能正常执行...

    jdbc事务练习_连接2个数据库

    jdbc事务练习_连接2个数据库 模拟一次转账操作,从oracle中取50到mysql的账户中; 2个数据库的user表都进行update操作 mysql的update失败会回滚oracle的update

    Java-JDBC【源码】事务介绍、事务特性、操作事务(事务提交、异常回滚)

    Java-JDBC【之】事务介绍、事务特性、操作事务(事务提交、异常回滚) 1.数据库事务 1.1.介绍 1.2.事务特性(ACID) ...1.4.JDBC事务处理 2.事务提交(代码实现) 3.异常回滚(代码实现) 4.完整源码

    MySQL数据库在idea中的增删改查,JDBC简化,JDBC工具类封装,orm模式,数据库三层架构,JDBC事务

    本项目为一个简单的JDBC项目,包括:MySQL数据库在idea中的增删改查,JDBC简化,JDBC工具类封装,orm模式,数据库三层架构,JDBC事务 新建一个ProductManager的项目,实现利用ORM思想和三层架构以下功能: t_product...

    JDBC数据库编程实验

    (4)理解JDBC中实现事务处理的基本方法; (5)理解数据库连接池的基本原理和思想,学会在tomcat服务器中配置数据库连接池,并掌握从连接池中获取连接的基本方法。 (6)初步理解数据访问层的基本设计方法,理解web...

    java使用jdbc对mysql的操作封装,包括java使用jdbc对mysql进行事务处理

    封装了java使用jdbc对mysql的操作,以及java使用jdbc对mysql的事务处理,对execute、executeUpdate、executeQuery进行了封装,把繁琐的创建数据库连接对象、PreparedStatement对象、结果集对象,打开关闭连接进行了...

    不同的事务操作代码

    不同的事务操作代码,包括 JTA全局事务 JDBC局部事务 以及包含了Hibernate事务

    Java实习报告:通过JDBC方式操作数据库(带实例和代码).doc

    实验题2:向student表连续插入5条记录,使用JDBC事务保证插入操作正确性,若5条记录插入成功,则操作成功;否则回滚插入操作。 实验题3:给student表增加一pic字段,使之能存放图片,并通过程序存入图片和读取图片。...

    JDBC与Hibernate区别

    ◆两者都可以对数据库的更新操作进行显式的事务处理。 不同点: ◆使用的SQL语言不同:JDBC使用的是基于关系型数据库的标准SQL语言,Hibernate使用的是HQL(Hibernate query language)语言 ◆操作的对象不同:JDBC...

    JDBC数据操作封装

    包括普通的增删查改,多条数据的增删改并封装成事务,结果返回到对象集合和list

    MySQL_4_JDBC高级操作和事务1

    第十二章 JDBC批处理操作批量处理允许您将相关的SQL语句分组到批处理中,并通过对数据库的一次调用提交它们。当您一次向数据库发送多个SQL语句时,可以减少连接

    JDBC学习资料

    1、什么是JDBC; 2、理解JDBC原理、知道什么是JDBC驱动;3、知道JDBC的功能;4、掌握JDBC中几个重要类的使用:Connection、Statement、...7、理解数据库事务、JDBC对事务的支持、以及JDBC事务的原理和如何使用JDBC事务。

    JDBC连接操作Oracle及Mysql详解

    JDBC连接Oracle 11g及Mysql5,涉及传参,反射,读取属性文件,预处理,(预处理)批处理,带参数的存储过程,事务处理,可滚动的结果集,可更新的结果集

    JDBC总结——事务

    文章目录事务一、事务的基本介绍1、概念2、操作3、操作实例4、MySQL数据库中默认自动提交二、事务的四大特征三、事务的隔离级别1、概念2、存在的问题3、隔离级别四、Jdbc事务控制1、概述2、控制事务的API:3、核心...

Global site tag (gtag.js) - Google Analytics