当前位置: 首页 > news >正文

网站域名续费多少钱/东莞网站推广运营公司

网站域名续费多少钱,东莞网站推广运营公司,怎么做国际货运代理外贸网站,淘宝联盟怎样做新增网站推广前言 一直在用spring的事务控制,但是始终都没有搞明白他是怎么实现事务控制的,现在还是不能彻底搞清楚,但是看了很多文档明白了一些东西,也不太确定对不对,权当一些个人理解和笔记记录一下,如有不对&#…

前言

一直在用spring的事务控制,但是始终都没有搞明白他是怎么实现事务控制的,现在还是不能彻底搞清楚,但是看了很多文档明白了一些东西,也不太确定对不对,权当一些个人理解和笔记记录一下,如有不对,还望各位指正。

怎么才算一个事务

首先要明白,jdbc怎么才算一个事务,看下面的代码(这里就不用银行转账的例子了,用一个插入,一个更新操作,但道理是一样的)

//基础代码省略
conn = DriverManager.getConnection(url, dbName, dbPass);
statement = conn.createStatement();
//要执行的sql语句
String sqlUpdate = "update account set money=0 where name='张三'";
String sqlInsert = "insert into account(name, money) values('赵六', 1000)";
statement.execute(sqlUpdate);
statement.execute(sqlInsert);

上面的代码执行了几个事务,两个。一个execute语句完成就执行了一个事务,你可以在两个execute之间手动添加int i=1/0;的异常,你会发现上面的语句完成了对数据库的操作。(PS:以前听过某马班老师的视频说过,完成了对数据库的操作一定是有事务产生的。)

事务控制的实现

通过上面的实验,说明了一个什么问题呢?
一个connection可以有多个事务,这点很重要。
但是上面也没有实现事务的控制啊,我们是想实现更新和插入同时发生(要么一起成功,要么一起失败)。
为什么会这样呢?那是因为jdbc默认是开启自动提交事务的,也就是说第一个execute执行完就提交了事务根本不管它底下兄弟的死活。所以我们要关闭自动提交事务,等最后他们都执行完了,在进行事务的提交。
改动代码如下:

try
//基础代码省略
conn = DriverManager.getConnection(url, dbName, dbPass);
statement = conn.createStatement();
conn.setAutoCommit(false);  //关闭自动提交事务
//要执行的sql语句
String sqlUpdate = "update account set money=0 where name='张三'";
String sqlInsert = "insert into account(name, money) values('赵六', 1000)";
statement.execute(sqlUpdate);
int i=1/0;
statement.execute(sqlInsert);
conn.commit();
//后面还有rollback(),就不写了

事务控制一定是在一个connection中完成的

通过上面的实验我们要明白一个道理,要想实现事务控制就必须在一个connection中进行增删改查(我就是一开始一直不明白这个道理),你想把,如果都不在一个connection中了,两个connection之间怎么协调完成事务控制呢。(当然,分布式事务控制除外

参考资料

https://docstore.mik.ua/orelly/weblinux2/mysql/ch08_02.htm
这个里边有一句话,对我影响特比大:

A database transaction is one or more database statements that must be executed together, or not at all.

你仔细看他的措辞,你发现了什么关键信息了吗?
他说的是一个或者多个statement必须一起执行,你是不是似乎明白了什么。


小结

上面的代码就完成了事务控制。很简单,但是有几个道理藏在里面,下面再重申一下:

  1. 一个execute就会执行一个事务
  2. 由1推导出一个connection可以执行多个事务
  3. 那么事务控制就是将多个execute放到一个connection中进行控制
  4. 控制的方式就是,关闭jdbc的自动提交(不在让他们各自自动进行提交),等所有事务全部执行成功再一起提交。
http://www.jmfq.cn/news/4826665.html

相关文章:

  • 专业网站制作公司排行/做一个网站要多少钱
  • 长沙网站托管哪家好/广州竞价托管代运营
  • 大连哪家网站技术开发公司好/厦门人才网官网登录
  • 东莞建网站平台/最新实时新闻
  • 网站建设的技术方案/软文案例大全300字
  • wordpress万网安装/网站优化排名怎么做
  • js网站下拉置顶代码/百度网盘网页版登录首页
  • 专业排名优化网站/海阳seo排名
  • 优秀网站建设出售/网上推广赚钱方法
  • 网上商城怎么开发/霸榜seo
  • 开发网站怎样注册公司/seo网站推广的主要目的是什么
  • 杭州网站建设页面/网络营销技巧和营销方法
  • 建设网站后如何做后台/广东清远今天疫情实时动态防控
  • 本地企业网站建设服务/百度学术论文官网入口
  • 服装生产厂商网站建设方案/推广学院seo教程
  • 怎么在网站视频做字幕/班级优化大师怎么用
  • 苏州企业网站制作服务/网站收录申请
  • 网站域名注册信息查询/网络营销和网络推广
  • 一个人做网站现实吗/免费推广产品的平台
  • 网站如何被搜索引擎收录/广州的百度推广公司
  • 阿里巴巴网站做销售方案/郑州seo优化哪家好
  • 想做个网站 怎么做/新手学百度竞价要多久
  • 网站建设实质/百度宁波运营中心
  • 建设 展示型企业网站/杭州网站运营十年乐云seo
  • 没公司怎么做网站/中国2022年重大新闻
  • 旅游网站建站目的/免费做网站的平台
  • 焦作网站建设哪家权威/广告
  • 大连微网站建设/百度经验官网入口
  • 刚做的win7系统连上网站没网/百度 营销推广多少钱
  • 权威的徐州网站建设/seo如何优化网站步骤