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

dwcc2018怎么做网站wordpress 标签数

dwcc2018怎么做网站,wordpress 标签数,drupal wordpress性能,上海注册公司的流程一、MySQL 事务定义 MySQL 事务主要用于处理操作量大#xff0c;复杂度高的数据。比如说#xff0c;在银行管理系统中#xff0c;用户张三向李四账户转账的操作#xff0c;账户转账是一个完整的业务#xff0c;最小的单元#xff0c;不可再分#xff0c;这样#xff0c…一、MySQL 事务定义 MySQL 事务主要用于处理操作量大复杂度高的数据。比如说在银行管理系统中用户张三向李四账户转账的操作账户转账是一个完整的业务最小的单元不可再分这样完成转账操作的这些SQL语句之和就构成一个事务 总的来说 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务处理可以用来维护数据库的完整性保证成批的 SQL 语句要么全部执行要么全部不执行。事务通常用来管理 insert增、update改、delete删 语句。 二、事务满足四个条件 事务是必须满足4个条件原子性、一致性、隔离性、持久性。 1.原子性一个事务transaction中的所有操作要么全部完成要么全部不完成不会结束在中间某个环节。 例如当事务在执行过程中发生错误时已经被修改过的数据会回滚Rollback到事务开始前的状态就像这个事务从来没有执行过一样。 2.持久性当一个事务处理结束后会进行commit提交操作将处理后的数据从内存提交到磁盘中保证数据的持久化存储。 3.一致性在事务开始之前和事务结束以后数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则。 4.隔离性事务通常都是并发的不同事务会同时对数据库中的数据进行读写和修改隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。 事务的隔离分为不同级别包括读未提交Read uncommitted、读提交read committed、可重复读repeatable read和串行化Serializable。 三、MySQL中事务管理的相关SQL指令 START TRANSACTION 显式地开启一个事务 COMMIT 事务提交将事务更新后的数据从内存保存进磁盘中实现数据的持久保存 ROLLBACK 事务回滚结束当前正在进行的事务并将已经修改但未提交的数据回滚到事务开始之前的状态 SAVEPOINT 【标记点】该指令允许在事务中创建一个保存点一个事务中可以有多个 SAVEPOINT RELEASE SAVEPOINT 【标记点】 删除一个事务的保存点当没有指定的保存点时执行该语句会抛出一个异常 ROLLBACK TO 【标记点】把事务回滚到标记点 SET TRANSACTION 用来设置事务的隔离级别。 InnoDB 存储引擎提供事务的隔离级别有READ UNCOMMITTED读未提交、READ COMMITTED读提交、REPEATABLE READ可重复读 和 SERIALIZABLE串行化。 其中我们最常用的两条语句就是commit事务提交和rollback事务回滚。 四、在MySQL中演示简单事务提交与回滚 业务情形id为1的用户张三 给 id为2的用户李四 转账100元 ①首先有一张bank的表所有用户的钱初始值都是200元 ②在不开启事物的情况下 1.模拟转张操作SQL代码 #不开启事物的情况下1.执行转张操作所需要的SQL语句 update bank SET money money-100 WHERE id 1; update bank SET money money100 WHERE id 2; 若未出现异常情况该项转账业务成功执行两个用户的钱发生正确变化 2.模拟中途出现异常SQL代码 #首先自定义一个异常叫money_error DECLARE money_error CONDITION FOR 1148;2.模拟中途出现异常转张执行失败 update bank SET money money-100 WHERE id 1; money_error update bank SET money money100 WHERE id 2; 如图所示若中途出现异常执行失败发现数据只更改了一半张三的钱少了但收款方李四账户并没有多出100元 像上述这种情况在实际项目开发中肯定是不允许出现的因此我们可以借助Mysql数据库中的事务管理将转账这两条SQL语句封装成一条事务使其具有不可分割性原子性 ③使用MySql中事务管理来模拟转账操作 当开启事务管理后若执行过程中遇到异常那么被修改但未提交的数据则会回滚到初始值 执行之前两人都是200元 1.模拟开启事务后执行转账操作 #开启事物管理---执行成功则提交到磁盘 start TRANSACTION; update bank SET money money-100 WHERE id 1; update bank SET money money100 WHERE id 2; commit;当事务正常执行并提交commit两人的钱会发生对应的变化  2.模拟转账操作执行过程中出现异常 #定义一个异常叫money_error DECLARE money_error CONDITION FOR 1148;#开启事物管理---执行失败则会回滚到初始数据 start TRANSACTION; update bank SET money money-100 WHERE id 1; money_error update bank SET money money100 WHERE id 2; ROLLBACK; 当转账遇到异常时进行事务回滚两人的金额仍然是200元。 通过以上的简单模拟我们已经对事务有了一定了解接下来让我们学习如何在MyBatis中进行事务管理操作。 五、事务管理与MyBatis结合 前提已经构建好MyBatis框架 ①.首先我们创建一个用户表用户初始余额都为200元 ②编写转账操作对应SQL语句 !-- 转账事物管理 --!-- 汇款人 --update idoutMoney parameterTypeList update user set money money-#{money} where id #{id}/update!-- 收款人 --update idacceptMoney parameterTypeList update user set money money#{money} where id #{id}/update ③然后编写Dao层接口方法 //事物管理测试//对于mapper的Dao层的接口传入的参数有多个时必须使用param进行标识//汇款public void acceptMoney(Param(money) float money,Param(userId) Integer id);//收款public void outMoney(Param(money)float money,Param(userId)Integer id); ④最后是转账业务的测试代码 无异常情况的情况下 //首先是正常执行转账操作没有异常时 public void transfer(){try{System.out.println(转账前);mapper.findAll();//执行转张mapper.outMoney(100,1);mapper.acceptMoney(100,2);session.commit();//当未捕捉到任何异常时提交事务System.out.println(转账后);mapper.findAll();}catch (Exception e){e.printStackTrace();session.rollback();//一旦捕捉到异常则将事务回滚}finally {if (session ! null) {session.close();//最后释放资源}}} 模拟一个转账异常 Testpublic void transfer(){try{System.out.println(转账前);findAll();//执行转张mapper.outMoney(100,1);int x 1/0; //模拟一个异常mapper.acceptMoney(100,2);session.commit();//当未捕捉到任何异常时提交事务System.out.println(转账后);findAll();}catch (Exception e){e.printStackTrace();session.rollback();//一旦捕捉到异常则将事务回滚}finally {if (session ! null) {//最后释放资源session.close();}} ⑤测试运行结果 正常执行转张操作 若转账中途出现异常 当出现异常转张操作会被中断然后事务回滚我们查看数据库每个人的前仍为初始值200元。 以上就是事务在实际开发过程中的应用本篇文章是我在学习完数据库事务管理后的总结与笔记如果大家喜欢请多多点赞若有错误欢迎指正 拓展多事务之间并发可能会导致的问题      ①脏读 ②不可重复读 ③幻读          参考文章 MySQL——事务(Transaction)详解_mysql事务-CSDN博客 MySQL 事务 | 菜鸟教程
http://www.yayakq.cn/news/4966/

相关文章:

  • 网站建设教程视频西瓜软件库破解版软件合集
  • 提供坪山网站建设湖南建设工程招标网
  • 动画设计技校沈阳网站排名seo
  • 河南营销型网站建设网站开发中数据库的功能
  • 网站网站如何做的充值浦东区网站建设
  • 长沙网站推广公司排名如何做泰国网站
  • html5的篮球网站开发成都专业做网站公司
  • 网站群建设指南找第三方做网站 需要注意
  • 做外贸推广的网站有哪些seo综合查询工具有什么功能
  • phpcmsv9手机网站源码中山网站改版
  • 广西城乡建设部网站网站开发有前途吗
  • wordpress站点是什么意思乐彩网站源码网站建设
  • 企业电子网站建设成都网站seo外包
  • 网站建设收费分几次做招聘信息的网站
  • 网站建设论坛报告升学宴邀请函电子版免费制作软件
  • 网站建设div可拖拽布局街区网站建设的意义
  • 做后期的网站微信公众号是干什么用的
  • 网站建设答案无锡网站建设唯唯网络
  • 北京网站建设询q479185700上快电商项目策划书
  • 金融培训网站源码个人网站页面设计需要那些步骤
  • 网站建设公司海南有一套源码做网站还差什么
  • 网站开发吗和APP软件一样吗郑州网站设计制作哪家好
  • 门户网站搭建方案活动拍摄
  • 旅行社网站建设需求分析app 展示网站
  • 企业应该找什么样的网站建设公司昆明网建
  • 重庆中国建设银行招聘信息网站辽阳专业建设网站公司
  • 泉州网站设计师招聘wordpress阅读插件
  • 在ps中做网站首页的尺寸书签制作 小学生的手工书签
  • 网站效果图怎么做html网站标题怎么做的
  • .net网站开发模板深圳市光明区官网