亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

<optgroup id="cczp1"><ruby id="cczp1"><cite id="cczp1"></cite></ruby></optgroup>
  • <acronym id="cczp1"></acronym>
    <acronym id="cczp1"><option id="cczp1"><ol id="cczp1"></ol></option></acronym>
    <delect id="cczp1"></delect>
    <center id="cczp1"></center>
    <delect id="cczp1"></delect><em id="cczp1"><button id="cczp1"><blockquote id="cczp1"></blockquote></button></em>
    1. <optgroup id="cczp1"><td id="cczp1"><dfn id="cczp1"></dfn></td></optgroup>

      Spring項目中的@Transactional事務(wù)管理

      項目中,很多時候數(shù)據(jù)是相對的,

      例如:用戶A付錢給用戶B,那么用戶A的賬戶需被扣錢。所扣的錢需被加到用戶B的賬戶上;

      但是在項目中,我們的代碼走向是,先扣除了用戶A的賬戶錢,這個時候,數(shù)據(jù)已經(jīng)被寫入SQL中,并且被提交,如果這個時候出現(xiàn)代碼錯誤,無法往下繼續(xù)走時,會導(dǎo)致,用戶B并沒有獲取到本該增加的錢,其實這個時候很容易出現(xiàn)問題

      這個時候就需要引入@Transactional事務(wù)管理;將這個注解放置在所需要的放置的service層的對應(yīng)方法上;

      這個時候,@Transactional將會作用于該方法上,@Transactional注解是將方法體內(nèi)執(zhí)行的代碼。先預(yù)先暫存在一個地方;

      隊友只有當(dāng)方法內(nèi)的代碼全部成功走完之后,才會對數(shù)據(jù)進(jìn)行成功操作;如果中間出現(xiàn)錯誤的代碼,導(dǎo)致執(zhí)行不下去時,會將前面已經(jīng)執(zhí)行成功的數(shù)據(jù),直接false,不會將對應(yīng)數(shù)據(jù)提交;

      這個一般來說我們會使用在增刪改這三個操作的前面加上@Transactional,查詢的話,就不需要加上

      例如:我們需要更新數(shù)據(jù)庫表中老師的內(nèi)容:如果在進(jìn)行更新時,出現(xiàn)錯誤時,是否會被真的修改掉??

      controller層:

      package com.cmj.controller;

      import java.util.List;

      import org.apache.ibatis.annotations.Param;

      import org.springframework.beans.factory.annotation.Autowired;

      import org.springframework.web.bind.annotation.DeleteMapping;

      import org.springframework.web.bind.annotation.GetMapping;

      import org.springframework.web.bind.annotation.PostMapping;

      import org.springframework.web.bind.annotation.PutMapping;

      import org.springframework.web.bind.annotation.RequestBody;

      import org.springframework.web.bind.annotation.RequestMapping;

      import org.springframework.web.bind.annotation.RequestParam;

      import org.springframework.web.bind.annotation.RestController;

      import com.cmj.entity.Teacher;

      import com.cmj.service.UserService;

      import com.github.pagehelper.PageInfo;

      @RestController

      @RequestMapping(“/teacher”)

      public class TeacherController {

      @Autowired

      private UserService userService;

      // 修改老師

      @PutMapping(“/update”)

      public String update(@RequestBody Teacher teacher) {

      return userService.update(teacher);

      }

      }

      2、Mapper數(shù)據(jù)

      TeacherMapper.java

      package com.cmj.dao;

      import java.util.List;

      import org.apache.ibatis.annotations.Mapper;

      import org.apache.ibatis.annotations.Param;

      import com.cmj.entity.Teacher;

      @Mapper

      public interface TeacherMapper {

      public void updateTeacher(Teacher teacher);

      }

      TeacherMapper.xml

      <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

      “http://mybatis.org/dtd/mybatis-3-mapper.dtd”>

      UPDATE `teacher` SET

      `pass_word`=#{passWord}

      WHERE (`name`=#{name})

      3、service執(zhí)行代碼:

      package com.cmj.service;

      import java.util.List;

      import org.springframework.beans.factory.annotation.Autowired;

      import org.springframework.stereotype.Service;

      import org.springframework.transaction.annotation.Transactional;

      import com.cmj.dao.TeacherMapper;

      import com.cmj.entity.Teacher;

      import com.github.pagehelper.PageHelper;

      import com.github.pagehelper.PageInfo;

      @Service

      public class UserService {

      @Autowired

      private TeacherMapper teacherMapper;

      // 修改老師

      @Transactional

      public String update(Teacher teacher) {

      teacherMapper.updateTeacher(teacher);

      int i = 1 / 0;

      teacherMapper.deleteByName(“nini”);

      return “成功”;

      }

      當(dāng)我們在修改老師這個方法體上加上 @Transactional注解后,當(dāng)代碼執(zhí)行時

      ①、teacherMapper.updateTeacher(teacher);進(jìn)行更新teacher時,系統(tǒng)不會馬上對表中的數(shù)據(jù)進(jìn)行更新;而是先存放在一個地方,等待整個方法內(nèi)的代碼執(zhí)行成功后再進(jìn)行提交;(如果出現(xiàn)錯誤,則不會被更新)

      ②、當(dāng)代碼走到:int i = 1 / 0;時,發(fā)現(xiàn)這個是一個錯誤代碼,代碼走到這邊后,工程停住,無法向下走后,也無法執(zhí)行到teacherMapper.deleteByName(“nini”)刪除老師的代碼;

      ③、當(dāng)這個方法出現(xiàn)報錯時,第一條的teacherMapper.updateTeacher(teacher)也被直接判定為false,這個方法中的內(nèi)容都不會被執(zhí)行到

      只有當(dāng)這個方法正常被執(zhí)行后,才可能被執(zhí)行

      所以這就是@Transactional事務(wù)管理的作用

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      上一篇 2022年6月16日 21:24
      下一篇 2022年6月16日 21:25

      相關(guān)推薦

      • ios手游模擬器(手游模擬器ios)

        本文主要講的是ios手游模擬器,以及和手游模擬器ios相關(guān)的知識,如果覺得本文對您有所幫助,不要忘了將本文分享給朋友。 哪個iOS模擬器能多開手游賬號?可以推薦個好用的模擬器給我嗎…

        2022年11月27日
      • 分享4條發(fā)微商朋友圈的方法(微商朋友圈應(yīng)該怎么發(fā))

        對于微商朋友來說,朋友圈的重要性不言而喻了。 那么微商的朋友圈到底該怎么發(fā)呢? 為什么同樣是經(jīng)營一個朋友圈,有的微商看起來逼格滿滿,實際效果也不錯;而有的卻動都不動就被屏蔽甚至拉黑…

        2022年11月27日
      • 30個無加盟費的項目(茶顏悅色奶茶店加盟費多少)

        茶顏悅色又爆了,8月18日,茶顏悅色南京門店正式開業(yè),開張不到半小時,門店就人滿為患,消費者的購買熱情十分高漲,而由于人流量過大造成擁堵,茶顏悅色也不得不暫停營業(yè)。 當(dāng)然,這里面排…

        2022年11月27日
      • 短視頻策劃內(nèi)容的3個要點(短視頻策劃內(nèi)容怎么做)

        短視頻在制作時,內(nèi)容框架非常重要。如果直奔主題,然后結(jié)束,聚卓告訴你,這樣的短視頻已經(jīng)過時了。現(xiàn)在的短視頻需要框架的,但不是任何框架,它需要一種易于理解和消化的框架。而且,現(xiàn)在大多…

        2022年11月27日
      • 美團(tuán)第三季度實現(xiàn)營收626億元,即時配送訂單量增至50億筆

        新京報訊(記者秦勝南)11月25日,美團(tuán)發(fā)布業(yè)績公告顯示,第三季度營收為626億元,較去年同比增長28.2%,凈利潤為12.2億元。第三季度,美團(tuán)即時配送訂單數(shù)增長至50億筆。截至…

        2022年11月27日
      • 工商銀行:已為客戶開立個人養(yǎng)老金資金賬戶

        南方財經(jīng)11月25日電,剛剛,21世紀(jì)經(jīng)濟(jì)報道記者收到工商銀行短信,稱“尊敬的客戶,您已成功開立工商銀行個人養(yǎng)老金資金賬戶,尾號為****,如有疑問,請及時聯(lián)系我行客服熱線9558…

        2022年11月26日
      • 凈利潤率越高越好嗎(凈利潤率多少合適)

        一、持續(xù)增收不增利,平均凈利潤率首次跌入個位數(shù) 2021年,增收不增利依舊是行業(yè)主流。具體來看,大部分企業(yè)營業(yè)收入呈增長態(tài)勢,E50企業(yè)平均同比增速達(dá)到17.3%,但是利潤增速則明…

        2022年11月26日
      • 個人怎么做抖音帶貨(個人做抖音帶貨能賺錢嗎)

        抖音如今是大家很熟悉的短視頻平臺,不過現(xiàn)在的抖音卻不只是短視頻那么簡單,它的功能非常豐富,其中一個就是可以帶貨,相信很多小伙伴都有在抖音上買過東西,抖音如今的變現(xiàn)能力也是不容小覷的…

        2022年11月25日
      • 《寶可夢朱紫》學(xué)校上課有什么用?學(xué)校上課獎勵介紹

        寶可夢朱紫游戲里在學(xué)校上課除了會學(xué)到寶可夢相關(guān)知識外,還可以獲取不同的獎勵,有些玩家不知道有什么獎勵,下面隨小編一起來看下寶可夢朱紫學(xué)校上課獎勵介紹吧。 學(xué)校上課獎勵介紹 游戲中上…

        2022年11月25日
      • 《寶可夢朱紫》夢特性怎么獲得?隱藏特性獲取方法推薦

        寶可夢朱紫里有很多寶可夢都是擁有夢特性會變強的寶可夢,很多玩家不知道夢特性怎么獲得,下面就給大家?guī)韺毧蓧糁熳想[藏特性獲取方法推薦,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 …

        2022年11月25日

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時間:周一至周五,10:30-18:30,節(jié)假日休息