springboot mybatis手動(dòng)事務(wù)的實(shí)現(xiàn)
創(chuàng)建springboot項(xiàng)目
搭建最簡(jiǎn)單的SpringBoot項(xiàng)目-CSDN博客
引入mybatis和數(shù)據(jù)庫(kù)依賴
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.28</version> <scope>provided</scope> </dependency> </dependencies>
創(chuàng)建springboot配置文件
spring: datasource: url: jdbc:mysql://192.168.30.128:3306/wd username: root password: 4752 mybatis: mapper-locations: classpath:mapper/*Mapper.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
創(chuàng)建啟動(dòng)類
package com.wd; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringbootMybatisApp { public static void main(String[] args) { SpringApplication.run(SpringbootMybatisApp.class, args); } }
創(chuàng)建數(shù)據(jù)庫(kù)實(shí)體
package com.wd.pojo; import lombok.Data; import java.util.Date; @Data public class User { private int id; private String name; private String addr; private Date updateTime; }
創(chuàng)建Mapper
package com.wd.mapper; import com.wd.pojo.User; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface UserMapper { int addUser(User user); }
創(chuàng)建mapper配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.wd.mapper.UserMapper"> <insert id="addUser"> insert into tbl_user (id, name, addr, update_time) values (#{id}, #{name}, #{addr}, #{updateTime}) </insert> </mapper>
創(chuàng)建controller
package com.wd.controller; import com.wd.mapper.UserMapper; import com.wd.pojo.User; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.DefaultTransactionDefinition; import org.springframework.web.bind.annotation.*; import java.util.Date; @RestController public class UserController { private final UserMapper userMapper; private final PlatformTransactionManager transactionManager; public UserController(UserMapper userMapper, PlatformTransactionManager platformTransactionManager) { this.userMapper = userMapper; this.transactionManager = platformTransactionManager; } @GetMapping(value = "testTransaction") public String testTransaction() { DefaultTransactionDefinition transDefinition = new DefaultTransactionDefinition(); transDefinition.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW); TransactionStatus transStatus = transactionManager.getTransaction(transDefinition); try { User user = new User(); user.setId(1); user.setName("aaa"); user.setUpdateTime(new Date()); userMapper.addUser(user); int i =0; int i1 = 1 / i; transactionManager.commit(transStatus); } catch (Exception e) { e.printStackTrace(); transactionManager.rollback(transStatus); } return "success"; } }
測(cè)試手動(dòng)事務(wù)
請(qǐng)求接口之后,發(fā)現(xiàn)并沒(méi)有新插入數(shù)據(jù)
到此這篇關(guān)于springboot mybatis手動(dòng)事務(wù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)springboot mybatis手動(dòng)事務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java對(duì)象序列化與反序列化的默認(rèn)格式和json格式使用示例
這篇文章主要介紹了java對(duì)象序列化與反序列化的默認(rèn)格式和json格式使用示例,需要的朋友可以參考下2014-02-02解決mybatis plus報(bào)錯(cuò)Invalid bound statement
在使用MyBatis時(shí)遇到InvalidBoundStatement異常,常因多個(gè)MapperScan配置沖突或者包掃描路徑設(shè)置錯(cuò)誤,解決方法包括保留一個(gè)MapperScan聲明、檢查jar包沖突、確保命名空間和掃描路徑正確,使用@TableId注解指定主鍵2024-11-11Java中new關(guān)鍵字和newInstance方法的區(qū)別分享
在初始化一個(gè)類,生成一個(gè)實(shí)例的時(shí)候,newInstance()方法和new關(guān)鍵字除了一個(gè)是方法一個(gè)是關(guān)鍵字外,最主要的區(qū)別是創(chuàng)建對(duì)象的方式不同2013-07-07Spring Boot實(shí)戰(zhàn)之發(fā)送郵件示例代碼
本篇文章主要介紹了Spring Boot實(shí)戰(zhàn)之發(fā)送郵件示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-03-03JAVA OutputStreamWriter流的實(shí)現(xiàn)
OutputStreamWriter是從字符流到字節(jié)流的橋接,它使用的字符集可以通過(guò)名稱指定,也可以明確指定,或者可以接受平臺(tái)的默認(rèn)字符集,本文詳細(xì)的介紹了JAVA OutputStreamWriter流的使用,感興趣的可以了解一下2021-06-06基于springboot redirect重定向路徑問(wèn)題總結(jié)
這篇文章主要介紹了springboot redirect重定向路徑問(wèn)題總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09