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

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                Spring項目中的@Transactional事務管理

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

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

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

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

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

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

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

                例如:我們需要更新數(shù)據(jù)庫表中老師的內容:如果在進行更新時,出現(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 “成功”;

                }

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

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

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

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

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

                所以這就是@Transactional事務管理的作用

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

                相關推薦

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                  2022年11月25日

                聯(lián)系我們

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