文档章节

JDBC 事务回滚

萧小蚁
 萧小蚁
发布于 2015/05/10 21:14
字数 193
阅读 169
收藏 7
package jdbcstu;

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

public class TransactionTest {

	public static void main(String[] args) {
		Connection conn=null;
		try {
			conn=getConnection();
			conn.setAutoCommit(false);//禁止事务的自动提交
			insertUserData(conn);
			insertAddressData(conn);
		} catch (SQLException e) {
			System.out.println("======捕获到SQL异常====");
			e.printStackTrace();
			try {
				conn.rollback();
				System.out.println("===事务回滚成功=====");
			} catch (Exception e2) {
				// TODO: handle exception
			}
		}finally{
			try {
				if(conn!=null){
					conn.close();
				}
			} catch (Exception e3) {
				e3.printStackTrace();
			}
		}
	}
	public static Connection getConnection(){
		Connection conn=null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp_db","root","");
		} catch (Exception e) {
			// TODO: handle exception
		}
		return conn;
	}
	public static void insertUserData(Connection conn) throws SQLException {
		
		
			String sql="insert into tbl_user(id,name,password,email)"+
						"values(10,'Tom','123456','tom@gmail.com')";
			Statement st=conn.createStatement();
			int count=st.executeUpdate(sql);
			System.out.println("向用户表中插入了"+count+"条记录");
			
		
	}
	public static void insertAddressData(Connection conn) throws SQLException {
		
			String sql="insert into tbl_address(id,city,country,user_id)"+
						"values(1,'shanghai','china','10')";
			Statement st=conn.createStatement();
			int count=st.executeUpdate(sql);
			System.out.println("向地址表中插入了"+count+"条记录");
		
	}

}


© 著作权归作者所有

萧小蚁

萧小蚁

粉丝 99
博文 279
码字总数 192339
作品 0
海淀
程序员
私信 提问
基于可靠消息方案的分布式事务(二):Java中的事务

前言:在上一篇文章 基于可靠消息方案的分布式事务:Lottor介绍 中介绍了常见的分布式事务的解决方案以及笔者基于可靠消息方案实现的分布式事务组件Lottor的原理,并展示了应用的控制台管理。...

aoho
2018/06/01
0
0
JDBC事务管理及SavePoint示例

默认情况下,当我们创建一个数据库连接时,会运行在自动提交模式(Auto-commit)下。这意味着,任何时候我们执行一条SQL完成之后,事务都会自动提交。所以我们执行的每一条SQL都是一个事务,...

heroShane
2014/02/07
3.2K
0
JAVA回滚机制,求大神指点迷津,小弟在此谢过!

上代码 try { // 更改JDBC事务的默认提交方式,默认是true,是自动提交; connection.setAutoCommit(false); m_hashMap = JsonConvert.JsonToObject(jsonContent, HashMap.class); akMxFieldI......

kycp1
2016/04/20
589
6
JDBC事务和JTA事务的区别 --包含spring事务 声明式事务

一、事务概述 事务表示一个由一系列的数据库操作组成的不可分割的逻辑单位,其中的操作要么全做要么全都不做。 与事务相关的操作主要有: BEGIN TRANSACTION; 开始一个事务,方法是:begin...

oswebgod
2018/07/30
54
0
mybatis-spring事务处理机制分析

Spring官方并没有提供对MyBatis的集成方案,于是MyBatis项目组自己写了一个项目mybatis-spring专门用于在spring中使用MyBatis。 mybatis-spring的实现很大程度上依赖spring jdbc的事务管理,...

fifadxj
2016/11/10
2.1K
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部