stat=con.createStatement();什么意思



stat=con.createStatement();什么意思

2012-08-28 23:04匿名  |  分类:JAVA相关  |  浏览1126次
2012-08-28 23:25 网友采纳
通过connection数据库链接对象 创建一个statement对象数据库操作对象

stat=con.createStatement();什么意思

2012-08-28 23:04匿名  |  分类:JAVA相关  |  浏览1126次
2012-08-28 23:25 网友采纳
通过connection数据库链接对象 创建一个statement对象数据库操作对象

package org.example; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class TestTransaction { public static void main(String[] args) { // 声明 Connection 和 Statement 对象,用于后续数据库操作 Connection con = null; Statement stat = null; // 注册 MySQL JDBC 驱动(MySQL 8.0+ 推荐使用 com.mysql.cj.jdbc.Driver) try { Class.forName("com.mysql.cj.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); // 若驱动加载失败,直接返回,无需继续执行 return; } try { // 1. 获取数据库连接 // 需根据实际情况修改数据库 URL、用户名、密码,这里假设数据库名为 bank,用户 root,密码 123 con = DriverManager.getConnection("jdbc:mysql://localhost:3308/bank", "root", "123456"); // 2. 关闭自动提交,开启 JDBC 事务(默认自动提交为 true,开启事务后需手动 commit 或 rollback) con.setAutoCommit(false); // 3. 创建 Statement 对象,用于执行 SQL 语句 stat = con.createStatement(); // 4. 定义转账相关的 SQL 语句 // 从 account_id 为 202201 的账户扣除 600 String str1 = "update account set balance=balance-600 where account_id=202203"; // 向 account_id 为 202202 的账户增加 600 String str2 = "update account set balance=balance+600 where account_id=202204"; // 5. 执行 SQL 语句 stat.executeUpdate(str1); stat.executeUpdate(str2); // 6. 提交事务(所有操作执行成功后,统一提交,使修改生效) con.commit(); System.out.println("转账操作执行成功,事务已提交"); } catch (SQLException e) { // 若执行 SQL 过程中出现异常,回滚事务,撤销已执行的操作 e.printStackTrace(); try { if (con != null) { con.rollback(); System.out.println("执行过程中出现异常,事务已回滚"); } } catch (SQLException e1) { e1.printStackTrace(); } } finally { // 7. 关闭资源(Statement 和 Connection),避免资源泄漏 try { if (stat != null) { stat.close(); } if (con != null) { con.close(); } } catch (SQLException e) { e.printStackTrace(); } } } }
最新发布
12-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值