jdbc mysql事务,JDBC 控制事务MySQL为例)

包 my.view.jdbc; 导入 my.view.util.JdbcUtils02; 导入 java.lang.reflect.Method; 导入 java.sql.Connection; 导入 java.sql.PreparedStatement; 导入 java.sql.SQLException; public 类 JdbcDemo09 { public 静态 void main(字符串[] args){

连接连接 = null ;

PreparedStatement prepareStatement1 = null ;

PreparedStatement prepareStatement2 = null ; 试试 // 1.建立联系

connection = JdbcUtils02.getConnection();

// 未完成交易

connection.setAutoCommit(false );

// 2.定义sql

// 2.1定义SQL语句以减少帐户余额

字符串sql1 ="更新帐户集余额=余额-?其中id =?" ;

// 2.2 SQL语句定义帐户余额的增加

字符串sql2 ="更新帐户集余额=余额+?其中id =?" ;

// 3.获取执行SQL语句的对象

prepareStatement1 = connection.prepareStatement(sql1);

prepareStatement2 = connection.prepareStatement(sql2);

// 4.设置参数

// 4.1 LeeHua的帐户余额减少了500元

prepareStatement1.setDouble(1,500 );

prepareStatement1.setInt( 2,1 );

// 4.2 Tom的帐户余额增加了500元

prepareStatement2.setDouble(1,500 );

prepareStatement2.setInt( 2,2 );

// 5.执行SQL语句

prepareStatement1.executeUpdate();

prepareStatement2.executeUpdate();

// 6.提交事务

connection.commit();

} catch (异常e){

// 7.事务回滚

尝试 {

如果(连接!= null ){

connection.rollback();

}

} catch (SQLException e1){

e1.printStackTrace();

}

} 最终

// 8.释放资源

releaseResources(preparedStatement2);

releaseResources(preparedStatement1);

releaseResources(连接);

}

}

公共 静态 \ lt; T 无效 releaseResources(T t){

如果(t!= null ){

试试

// 使用反射获取类对象

类\\? \ Gt; aClass = t.getClass();

// 在类对象中获取方法对象

方法close = aClass.getMethod("关闭" );

// 实现方法

close.invoke(t);

} catch (异常e){

e.printStackTrace();

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值