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

jdbc mysql 事务的设置

阅读更多
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.Statement ;
public class TranDemo02{
	// 定义MySQL的数据库驱动程序
	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
	// 定义MySQL数据库的连接地址
	public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
	// MySQL数据库的连接用户名
	public static final String DBUSER = "root" ;
	// MySQL数据库的连接密码
	public static final String DBPASS = "mysqladmin" ;
	public static void main(String args[]) throws Exception{	// 所有异常抛出
		Connection conn = null ;		// 数据库连接
		Statement stmt = null ;		// 定义数据库操作
		Class.forName(DBDRIVER) ;	// 加载驱动程序
		conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;

		conn.setAutoCommit(false) ;	// 取消掉自动提交

		stmt = conn.createStatement() ;
		stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
			" VALUES ('LXH-1','hello-1',11,'男','1975-03-05') ") ;
		stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
			" VALUES ('LXH-2','hello-2',12,'女','1976-03-05') ") ;
		// 加入“'”之后,此SQL语法就出现了错误,所以,肯定执行到此语句的时候出现代码错误
		stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
			" VALUES ('LXH-'3','hello-3',13,'男','1977-06-01') ") ;
		stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
			" VALUES ('LXH-4','hello-4',14,'女','1965-03-05') ") ;
		stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" +
			" VALUES ('LXH-5','hello-5',15,'女','1965-08-05') ") ;
		try{
			int temp[] = stmt.executeBatch() ;
			System.out.println("更新了:" + temp.length+ "条数据。") ;
			conn.commit() ;	// 所有的操作成功了
		}catch(Exception e){
			try{
				conn.rollback() ;
			}catch(Exception e1){
				
			}
		}
		stmt.close() ;
		conn.close() ;			// 数据库关闭
	}
};

 

 

 

import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.Statement ;
import java.sql.Savepoint ;
public class TranDemo03{
	// 定义MySQL的数据库驱动程序
	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
	// 定义MySQL数据库的连接地址
	public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
	// MySQL数据库的连接用户名
	public static final String DBUSER = "root" ;
	// MySQL数据库的连接密码
	public static final String DBPASS = "mysqladmin" ;
	public static void main(String args[]) throws Exception{	// 所有异常抛出
		Connection conn = null ;		// 数据库连接
		Statement stmt = null ;		// 定义数据库操作
		Class.forName(DBDRIVER) ;	// 加载驱动程序
		conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;

		conn.setAutoCommit(false) ;	// 取消掉自动提交

		stmt = conn.createStatement() ;
		stmt.executeUpdate("INSERT INTO user(name,password,age,sex,birthday)" +
			" VALUES ('LXH-1','hello-1',11,'男','1975-03-05') ") ;
		stmt.executeUpdate("INSERT INTO user(name,password,age,sex,birthday)" +
			" VALUES ('LXH-2','hello-2',12,'女','1976-03-05') ") ;
		Savepoint sp = conn.setSavepoint() ;		// 设置保存点
		
		stmt.executeUpdate("INSERT INTO user(name,password,age,sex,birthday)" +
			" VALUES ('LXH-4','hello-4',14,'女','1965-03-05') ") ;
		stmt.executeUpdate("INSERT INTO user(name,password,age,sex,birthday)" +
			" VALUES ('LXH-5','hello-5',15,'女','1965-08-05') ") ;
		try{
			conn.rollback(sp) ;	// 回滚到保存点
			conn.commit() ;	// 所有的操作成功了
		}catch(Exception e){
			e.printStackTrace() ;
		}
		stmt.close() ;
		conn.close() ;			// 数据库关闭
	}
};

 

 

 

set autocommit=0;  //开启事务    1关闭事务
begin;

insert into user_detail(id,password,name,email) values(1234,'aaa','testa','123@qq.com'); //插入数据
rollback;//回滚,取消插入的数据



insert into user_detail(id,password,name,email) values(1234,'aaa','testa','123@qq.com'); //插入数据
commit;//提交数据,不能回滚

 

 

分享到:
评论

相关推荐

    jdbc+spring+mysql事务理解和分析

    jdbc+spring+mysql事务理解和分析

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

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

    JDBC使用MySQL处理大数据+事务控制管理.txt

    JDBC使用MySQL处理大数据+事务控制管理.txt

    JavaEE的Spring JDBC与事务管理 实验

    1、掌握Spring JDBC的配置; 2、掌握JdbcTemplae类中增删改查方法的使用; 3、了解Spring事务管理的3个核心接口; 4、了解Spring事务管理的两种方式; 5、掌握基于XML和Annotation的声明式事务管理的使用。 二、 ...

    JDBC事务操作例子所需jar包

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

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

    3.2设置事务回滚点 1.事务(Transaction)的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。 举例:需求:把大象放入冰箱 1.打开冰箱门 2.放入大象 3.关闭冰箱门 例如:...

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

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

    Java实现的mysql事务处理操作示例

    主要介绍了Java实现的mysql事务处理操作,结合实例形式较为详细的分析了Java基于JDBC操作mysql数据库实现事务处理的相关概念、操作技巧与注意事项,需要的朋友可以参考下

    JDBC_MySQL&Oracle;源码

    JDBC连接MySQL;JDBC连接Oracle. 两部分源码,写的比较详细,包括对各种结果集进行的处理分类,包括PreparedStatement,CallableStatement,批处理Batch,运用事务处理,滚动结果集和更新结果集等

    spring hibernate,spring jdbc事务管理

    两个项目,一个项目是基于spring jdbc实现的分布式事务,一个是基于spring hibernate的分布式事务,hibernate项目里的applicationContext2.xml是基于mysql和mssql, applicationContext3.xml基于两个mssql, ...

    JDBC连接操作Oracle及Mysql详解

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

    第10章 MySQL事务机制和JDBC的使用.ppt

    Java Web基础与实例教程的PPT,自己制作的PPT,将近400页,免费分享,童鞋们努力学习吧。

    JDBC总结——事务

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

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

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

    JDBC数据库编程实验

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

    spring框架手动提交事务,jdbctample

    注意:只是jdbc自带的jdbctample,不能 用于整合mybatis框架的事务,我整合了,事务不起作用!!!! 按老师的说法是基于xml方式,但不准确,因为也用到了注解 <aop:aspectj-autoproxy proxy-target-class="true">...

    jdbc实例教程

    JDBC实例教程 JDBC(Java Database Connectivity)是一种Java API,用于连接和操作关系数据库。...使用 JDBC 事务可以确保多个操作作为一个整体来执行,如果其中任何一个操作失败,整个事务将回滚。

    MySql事务无法回滚的原因有哪些

    使用MySQL时,如果发现事务无法回滚,但Hibernate、Spring、JDBC等配置又没有明显问题,到底是什么原因,下面与大家分享下

    MySQL_4_JDBC高级操作和事务1

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

    解析mysql二进制日志处理事务与非事务性语句的区别

    在事务性语句执行过程中,服务器将会进行额外的处理,在服务器执行时多个事务是并行执行的,为了把他们的记录在一起,需要引入事务缓存的概念。在事务完成被提交的时候一同刷新到二进制日志。对于非事务性语句的处理...

Global site tag (gtag.js) - Google Analytics