牛客网社区项目——p3.4事务管理
数据库保障事务的机制如下
spring事务管理
在业务层模拟某个业务,注册用户和自动发送新人报到帖这两个业务视作一个事务
代码如下(两种方法):
@Transactional(isolation = Isolation.READ_COMMITTED, propagation = Propagation.REQUIRED)public Object save1(){//新增用户User user = new User();user.setUsername("alpha");user.setSalt(CommunityUtil.generateUUID().substring(0,5));user.setPassword(CommunityUtil.md5("123"+user.getSalt()));user.setEmail("alpha@qq.com");user.setHeaderUrl("http://image.nowcoder.com/head/99t.png");user.setCreateTime(new Date());userMapper.insertUser(user);//新增帖子DiscussPost post = new DiscussPost();post.setUserId(user.getId());post.setTitle("hello!");post.setContent("新人报道!");post.setCreateTime(new Date());dicussPostMapper.insertDiscussPost(post);Integer.valueOf("abc");return "abc";}public Object save2(){transactionTemplate.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);return transactionTemplate.execute(new TransactionCallback<Object>() {@Overridepublic Object doInTransaction(TransactionStatus transactionStatus) {//新增用户User user = new User();user.setUsername("beta");user.setSalt(CommunityUtil.generateUUID().substring(0,5));user.setPassword(CommunityUtil.md5("123"+user.getSalt()));user.setEmail("beta@qq.com");user.setHeaderUrl("http://image.nowcoder.com/head/999t.png");user.setCreateTime(new Date());userMapper.insertUser(user);//新增帖子DiscussPost post = new DiscussPost();post.setUserId(user.getId());post.setTitle("你好!");post.setContent("我是新人!");post.setCreateTime(new Date());dicussPostMapper.insertDiscussPost(post);Integer.valueOf("abc");return "abc";}});}
在测试类中分别对两种方法进行测试,由于Integer.valueOf("abc");
报错,该事务失败应该回滚,因此事务内前面的代码也回滚了,整个事务没有执行。
牛客网社区项目——p3.4事务管理相关推荐
- Java牛客网社区项目——知识点面试题
Java牛客网社区项目--知识点&面试题 持续更新中(ง •̀_•́)ง 文章目录 Java牛客网社区项目--知识点&面试题 请简要介绍一下你的项目? 什么是Spring框架? 对Sp ...
- 仿牛客网社区项目 全栈总结
学习仿牛客网社区项目 代码&资源 各章节总结 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 争取让每个知识点都有链接可点 项目总结 网站架构图 常见面试题 MySQL Red ...
- 2019牛客网高级项目
本项目是一个基于SpringBoot的社区平台,实现了牛客网讨论区的功能.实现了邮箱注册.验证码登录.发帖.评论.私信.点赞.关注.统计网站访问次数等功能,数据库使用Mybatis.Redis,使用K ...
- 仿牛客网社区开发--核心功能模块
1.过滤敏感词 我们想在某个网站上发布一些内容的时候,网站会对我们所发布的内容进行过滤,如果发现我的内容里包含一些色情.暴力等非法词汇,会把这些词汇隐去,即不显示或者打码,那么这种行为就叫过滤敏感词. ...
- 牛客网中级项目学习笔记(一)
牛客中级项目学习: Controller 解析web请求 Service 业务层 DAO(data access object)数据处理层 database 底层数据库 重定向 代码如下: @Requ ...
- [牛客网中级项目]第四章用户注册登陆管理
目录 1. 预习 1.1 拦截器: 1.2 MD5加密算法: 2. 内容: 3. 注册: 3.1 注册要实现的功能: 3.2 代码实现: 3.2.1 建立LoginCotroller.class 3. ...
- 牛客网实战项目详细到每一步(更新中)
一技术架构 Spring Boot Spring Spring MVC MyBatics Redis Kafka Elasticsearch重点的提高性能的技术 Spring Security, Sp ...
- 2022-1-13牛客网C++项目—— 第二章 Linux 多进程开发(一)
复习用的问题 进程和程序之间的关系是什么? 进程包含了哪些信息? 一.程序当中包含了一系列的信息,这些信息用于描述如何创建一个进程. 1)二进制格式标识:描述文件的格式,内核根据这个信息来解释文件中的 ...
- 2021-12-11牛客网C++项目——Linux编程介绍入门(二)
1.15 目录操作函数 mkdir 函数 /*#include <sys/stat.h>#include <sys/types.h>int mkdir(const char * ...
最新文章
- python储存在ftp_python实现FTP
- Vue后台管理系统实现登录功能
- C#中数组、ArrayList和List三者的区别(转) ,加修改
- ubuntu下解压缩zip,tar,tar.gz和tar.bz2文件
- 【rman】list archivelog all与list backup of archivelog all
- arm体系结构与编程_RISCV中文版面市! MIPS、ARM、RISCV三驾马车配齐,奔向体系结构教学的新黄金时代!...
- Uber无人车事故又有新内情曝光:为竞争盲目冒进,瘾大技术差
- Mysql 中 show full processlist
- 哈工大刘铭:开放式知识图谱的自动构建技术
- 华为5ipro详细参数使用功能_华为nova6se和nova5ipro的参数配置对比评价
- 2021Java面试题及答案整理(最新汇总版)
- 量子力学在计算机上的应用论文,量子力学论文.doc
- matlab做nmf矩阵分解,进阶理解非负矩阵分解(NMF)
- java获取系统dpi_Java DPI介绍
- 2009级 华中科技大学 计算机学院 本科生名单,华中科技大学2009届本科生.doc
- busboy中文文件名乱码问题
- 阿里云国际站代理商:利用RDS MySQL数据库云开发ToDo List
- (5)CC3200学习之串口
- 如何去除搜索引擎上的广告
- 工作了3年的JAVA程序员应该具备什么技能?
热门文章
- 动力学分析基础(一)
- 关于灰度共生矩阵的一点知识(MATLAB)
- 重磅 | 华为发布绝杀计算战略!投15亿美元打造开放生态,全球最快AI训练集群Atlas 900,绝了!...
- mysql 幻读的隔离_MySQL的RR隔离级别与幻读问题
- Mongodb 安装详解
- 关于开发微信公众号获取手机用户运动数据的功能实现思路
- ctf.show web2 最简单的SQL注入
- python测速程序_利用Python对网站进行测速
- ubuntu16.04安装IDEA
- CNN系列:GoogleNet:深入卷积架构(Going Deeper with Convolutions)