会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 128778个问题
JAVA 全系列/第一阶段:JAVA 快速入门/变量、数据类型、运算符 37651楼
JAVA 全系列/第一阶段:JAVA 快速入门/变量、数据类型、运算符 37652楼
JAVA 全系列/第一阶段:JAVA 快速入门/控制语句、方法、递归算法 37653楼

package com.bjsxt.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * 事务管理
 * @author Administrator
 *
 */
public class JdbcTransaction {

	public static void main(String[] args) {
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";// 数据库连接路径
		String user = "bjsxt";
		String password = "123";
		Connection conn = null;
		Statement stmt1 = null;
		Statement stmt2 = null;
		String sql1 = "update t_account set money=money-1000 where id=1";
		String sql2 = "update t_account set money=money+1000 where id=2";
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn = DriverManager.getConnection(url, user, password);
			System.out.println(conn);
			conn.setAutoCommit(false);
			stmt1 = conn.createStatement();
			stmt2 = conn.createStatement();
			int num = stmt1.executeUpdate(sql1);
			num += stmt2.executeUpdate(sql2);
			if (num == 2) {
				System.out.println("转账成功,提交事务");
				conn.commit();
			} else {
				System.out.println("转账失败");
				conn.rollback();
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			System.out.println("异常信息:" + e.getMessage());
			if (conn != null) {
				try {
					conn.rollback();
				} catch (SQLException e1) {
					e1.printStackTrace();
				}
			}
		} finally {//关闭
			if (conn != null) {
				try {
					conn.setAutoCommit(true);
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (stmt2 != null) {
				try {
					stmt2.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (stmt1 != null) {
				try {
					stmt1.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

GIF.gif

代码应该是对的,为什么操作失败呢,我也在eclipse中用查询语句查了,结果集的next()是false;是找不到这个t_account表吗.我都已经创建了啊

JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 37655楼
JAVA 全系列/第一阶段:JAVA 快速入门/变量、数据类型、运算符 37657楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 37659楼
JAVA 全系列/第一阶段:JAVA 快速入门/JAVA入门和背景知识 37660楼
JAVA 全系列/预科阶段:职业规划/学习方法/JAVA 技术体系介绍和学习方法 37663楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 37664楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 37665楼

百战程序员微信公众号

百战程序员微信小程序

©2014-2024 百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637