import java.sql.*;public classDemo {public static voidmain(String[] args) {

Connection conn= null;

PreparedStatement ps= null;

ResultSet rs= null;try{//1、注册驱动

Class.forName("com.mysql.jdbc.Driver");///2、获取连接(数据库对象)

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/donglijiedian", "root", "zhixi158");//3、关闭事务的自动提交,就是开启事务

conn.setAutoCommit(false);//4、获取预编译的数据库操作对象(业务代码)

String sql1 = "update shiwu set `money` = money+500 where `name` = 'zhangsan'";

ps=conn.prepareStatement(sql1);//4.1、执行更新

int count =ps.executeUpdate();/*** 如果让中间这个地方出现异常,那么余额就会是错误的了,第二条SQL语句并没有执行

* 会出现:

* java.lang.NullPointerException(空指针异常)

* JDBC 中的事务是自动提交的:只要执行一条语句就提交一次

* 解决办法:使用手动事务*/

//String s = null;//s.toString();

String sql2= "update shiwu set `money` = money-500 where `name` = 'lisi'";

ps=conn.prepareStatement(sql2);

count+=ps.executeUpdate();

System.out.println(count== 2 ? "转账成功" : "转账失败");//4.1.1、序能走到这里,说明上面没有出现异常,将事务进行手动提交

conn.commit();//4.1.2、使用完毕后开启事务的自动提交

conn.setAutoCommit(true);

}catch (SQLException |ClassNotFoundException e) {//4.2、更新数据失败就回滚

try{

conn.rollback();

}catch(SQLException ex) {

ex.printStackTrace();

}

e.printStackTrace();

}finally{//6、释放资源

if (rs != null) {try{

rs.close();

}catch(SQLException e) {

e.printStackTrace();

}

}if (ps != null) {try{

ps.close();

}catch(SQLException e) {

e.printStackTrace();

}

}if (conn != null) {try{

conn.close();

}catch(SQLException e) {

e.printStackTrace();

}

}

}

}

}

java模拟转账_事务-模拟银行用户转账相关推荐

  1. 手机工商银行怎么转账_工商银行手机银行怎么转账

    展开全部 1.在手机应用复商城中搜制索APP"中国工商银2113行",下载并安5261装此APP.安装完毕后4102,打开此APP.如有APP,打开客1653户端登陆. 2.点击手 ...

  2. mysql事务转账_事务(转账实例)

    事务(以转账为例) 事务: 就是一件完整的事情,包含多个操作单元,这些操作要么全部成功,要么全部失败. 例如:转账,包含转出操作和转入操作. mysql中的事务: mysql中事务默认是自动提交,一条 ...

  3. android 模拟电脑按键精灵,模拟精灵_安卓模拟精灵_和按键精灵一样的软件

    多普鼠标键盘万能模拟精灵程序以指定窗口为操作目标,定位更准确.更快捷,并且不需要编写任何代码,只要会电脑操作的人就可以快速的生成强大的后台操作代码,可以完成任何一个前台用户可以完成的工作,可以应用到任 ...

  4. java mysql多次事务 模拟依据汇率转账,并存储转账信息 分层完成 dao层 service 层 client层 连接池使用C3p0 写入库使用DBUtils...

    Jar包使用,及层的划分 c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3 ...

  5. java 汉米尔顿回路_《模拟电子技术基础》课程教学大纲

    <离散数学(II)>课程教学大纲 一.课程基本信息 课程名称 离散数学(II) 课程英文名称 Discrete Mathematics(II) 总学时 40 讲课学时 34 实验学时 上机 ...

  6. 分子动力学模拟软件_机器学习模拟1亿原子:中美团队获2020「超算诺贝尔奖」戈登贝尔奖...

    在前世界第一超算 Summit 上,研究人员在保持「从头算」精度的前提下成功模拟了 1 亿原子的运动轨迹,将超大系统的分子动力学模拟带进了一个新时代. 机器之心报道,作者:泽南.张倩.小舟. 有超算界 ...

  7. python mta 模拟试题_统计模拟试题

    统计模拟试题 1. 总体是由( ) . A. 个体组成 B. 同质个体组成 C. 影响因素 D. 研究指标组成 E. 以上都不对 2. 一般在投掷一枚硬币时出现正面的概率为 0.5 . 某人作了 20 ...

  8. java 微博 屏蔽_新浪微博的屏蔽用户机制很有趣啊

    继不断达成知乎被屏蔽15天成就以后,今日get到了新浪微博禁言15天成就.然后贴一下成就达成过程,我还真挺八婆的,每每在热榜下发评论,被上榜的用户删除评论并拉黑,就可以达成禁言成就了,这里其实早该得到 ...

  9. 免费沙箱软件模拟支付_沙箱模拟公众号支付的问题

    qinzhenlong 13 个回复 • 查看 742 次 • 164天前 DOUDING 10 个回复 • 查看 414 次 • 107天前 花看半开丶 9 个回复 • 查看 290 次 • 80天 ...

最新文章

  1. RedHat6.5网卡问题总结
  2. Nginx核心模块——HTTP中的配置指令location和rewrite介绍
  3. c++动态绑定的技术实现
  4. LeetCode 681. 最近时刻
  5. 详解CPU几个重点基础知识
  6. python的简单GUI(多线程时钟)
  7. bzoj 3412: [Usaco2009 Dec]Music Notes乐谱
  8. Himall商城普通帮助类(四)
  9. 达梦数据库同步部署方案
  10. 微信jssdk 图片上传 JAVA_微信JSSDK上传图片
  11. 【JIRA学习】 研发项目管理工具工时管理-插件Tempo
  12. A Noise-Robust Framework for Automatic Segmentation of COVID-19 Pneumonia Lesions From CT Images论文笔记
  13. oracle not all variables bound,ORA-01008: not all variables bound 错误
  14. 最全面的github pages搭建个人博客教程
  15. 这 10 种 MySQL 经典错误案例,99% 的程序员一定遇到过!你呢?
  16. 使用easypoi将数据导入excel中
  17. 2002 年 Google被封事件真相
  18. 基于JavaSDK调用FISCO BCOS 区块链
  19. 联想拯救者y7000p电脑坏了,拿去维修了
  20. 2020 年 HackerEarth 调查:Go 语言成为最受欢迎的语言(内含 Go 语言图谱下载)

热门文章

  1. linux yum 安装的路径在哪,yum 下载软件的存放位置
  2. skylake服务器CPU型号芯片,Skylake与Kaby Lake顶级处理器到底有多大差别?Intel i7-7700K评测...
  3. 2017年秋季学期软件工程第一次作业(曹洪茹)
  4. 听说火狐要换Logo,网友们掀起了一场“战争”
  5. java excel api及详细教程_Java Excel Api及详细教程
  6. 数字识别digits.png研究
  7. 1997年-2017年各省(直辖市、不包含西藏)能源投入(万吨标准煤)
  8. RSA算法以及所涉及的数论定理的简单证明
  9. 信贷反欺诈风险管理体系|附欺诈策略细则
  10. EXTJS 6 Grid 滚动到底部 触发事件(如:加载数据)