微山本地有做网站的么,徐州网站建设咨询,电子名片制作app,小程序助手Spring事务 .什么是事务事务的操作Spring中事务的实现准备工作创建表创建项目,引入Spring Web, Mybatis, mysql等依赖配置文件实体类 编程式事务(手动写代码操作事务)声明式事务(利用注解自动开启和提交事务) . 什么是事务
事务是⼀组操作的集合, 是⼀个不可分割的操作 在我们… Spring事务 .什么是事务事务的操作Spring中事务的实现准备工作创建表创建项目,引入Spring Web, Mybatis, mysql等依赖配置文件实体类 编程式事务(手动写代码操作事务)声明式事务(利用注解自动开启和提交事务) . 什么是事务
事务是⼀组操作的集合, 是⼀个不可分割的操作 在我们Java中,事务会把所有的操作当作一个整体,⼀起向数据库提交或者是撤销操作请求,这个整体只能同时成功和失败.
事务的操作
事务有三个操作步骤: 1.开启事务:start transaction/ begin(在对整体执行之前进行开启) 2.提交事务:commit(当这个整体都执行成功之后,就会将事务进行提交) 3.回滚事务:rollback(当这个整体之中某个部分出现错误,事务就会进行回滚)
Spring中事务的实现
Spring中的事务操作分为两类 1.编程式事务 2. 声明式事务
准备工作
需求:用户注册,在注册时向日志中插入一条操作记录
创建表
DROP DATABASE IF EXISTS trans_test;
CREATE DATABASE trans_test DEFAULT CHARACTER SET utf8mb4;
-- ⽤⼾表
DROP TABLE IF EXISTS user_info;
CREATE TABLE user_info (
id INT NOT NULL AUTO_INCREMENT,
user_name VARCHAR (128) NOT NULL,
password VARCHAR (128) NOT NULL,
create_time DATETIME DEFAULT now(),
update_time DATETIME DEFAULT now() ON UPDATE now(),
PRIMARY KEY (id)
) ENGINE INNODB DEFAULT CHARACTER SET utf8mb4 COMMENT ⽤⼾表;
-- 操作⽇志表
DROP TABLE IF EXISTS log_info;
CREATE TABLE log_info (
id INT PRIMARY KEY auto_increment,
user_name VARCHAR ( 128 ) NOT NULL,
op VARCHAR ( 256 ) NOT NULL,
create_time DATETIME DEFAULT now(),
update_time DATETIME DEFAULT now() ON UPDATE now()
) DEFAULT charset utf8mb4;创建项目,引入Spring Web, Mybatis, mysql等依赖
配置文件
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/trans_test?characterEncodingutf8useSSLusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver
mybatis:configuration: # 配置打印 MyBatis⽇志log-impl: org.apache.ibatis.logging.stdout.StdOutImplmap-underscore-to-camel-case: true #配置驼峰⾃动转换实体类
package com.example.demo.model;import lombok.Data;import java.util.Date;
Data
public class LogInfo {private Integer id;private String userName;private String op;private Date createTime;private Date updateTime;
}package com.example.demo.model;import lombok.Data;import java.util.Date;
Data
public class UserInfo {private Integer id;private String userName;private String password;private Date createTime;private Date updateTime;
}编程式事务(手动写代码操作事务)
声明式事务(利用注解自动开启和提交事务)