mybatis删除mysql提交事务,MYsql单独使用mybatis事务处理的无法回滚问题
mysql有几种引擎,当使用InnoDB的时候,才可以进行事务处理,在navicat中如下设置:
1:进入表设计页面,选项按钮页面
2:修改数据库引擎为InnoDB
3:mybatis进行事务处理的代码如下:
package com.better517na.LogCollection.dao.impl;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.transaction.Transaction;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
import com.better517na.LogCollection.dao.WriteACCindexDao;
import com.better517na.LogCollection.model.MLogAcc;
import com.better517na.LogCollection.service.base.LoadSpring;
import com.better517na.LogCollection.util.SqlUtil;
import com.better517na.logcompontent.model.MLogException;
import com.better517na.logcompontent.util.ExceptionLevel;
public class WriteACCindexDaoImpl implements WriteACCindexDao {
@Override
public boolean writeACClogToDB(List mLogAccs) {
int result = -1;
TransactionFactory transactionFactory = new JdbcTransactionFactory(); // 事务工厂
SqlSession session = null;
Transaction newTransaction = null;
try {
session = SqlUtil.getAccSqlSessionFactory().openSession();
newTransaction = transactionFactory.newTransaction(session
.getConnection());
Map map = new HashMap();
map.put("logAccList", mLogAccs);
map.put("tableName", mLogAccs.get(0).getTableName());
result = session.insert("writeACClogToDB", map);
} catch (Exception e) {
try {
newTransaction.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
LoadSpring.getLogBusiness().writeExceptionLog(
new MLogException(ExceptionLevel.Error, "123", e));
return false;
} finally {
try {
newTransaction.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result > 0 ? true : false;
}
}
4:mybatis的mapper.xml文件如下:
ttp://mybatis.org/dtd/mybatis-3-mapper.dtd">http://mybatis.org/dtd/mybatis-3-mapper.dtd">
INSERT INTO
${tableName}(
LogID,
TimeTicks,
TrackID,
TimePoint,
TimePeriod,
Sequence,
Direction,
LocalIP,
MachineName,
ServiceAddress,
AppName,
Method,
Description,
ExceptionID,
ExceptionLevel,
Paras,
ReturnValue,
Key1,
Key2,
Key3
)
values
(
#{item.logID},
#{item.timeTicks},
#{item.trackID},
#{item.timePoint},
#{item.timePeriod},
#{item.sequence},
#{item.direction},
#{item.localIP},
#{item.machineName},
#{item.serviceAddress},
#{item.appName},
#{item.method},
#{item.description},
#{item.exceptionID},
#{item.exceptionLevel},
#{item.paras},
#{item.returnValue},
#{item.key1},
#{item.key2},
#{item.key3})
mybatis删除mysql提交事务,MYsql单独使用mybatis事务处理的无法回滚问题相关推荐
- MySQL操作成功之后Redis操作失败的回滚问题
在项目中有个需求,需要保证MySQL数据库和Redis缓存数据的一致性. 一般增删改都是先操作MySQL数据库,成功之后再操作Redis,但这里有个问题,如果MySQL操作成功了,但Redis突然出现 ...
- MySQL数据库的事务开启,提交和回滚
事务(transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位. 基于事务的原子性.一致性.隔离性和持续性特征,可以将相关的数据操作定义到一个事务 ...
- mysql重做日志_详解MySQL 重做日志(redo log)与回滚日志(undo logo)
前言: 前面文章讲述了 MySQL 系统中常见的几种日志,其实还有事务相关日志 redo log 和 undo log 没有介绍.相对于其他几种日志而言, redo log 和 undo log 是更 ...
- jsp mysql事务锁,JSP操作数据库的事务回滚
基础介绍 1.先设置为手动提交 conn.setAutoCommit(false); //将自动提交设置为false 2.若成功则提交 conn.commit(); //当操作成功后手动提交 3.若失 ...
- workbench 手动提交事务_mysql实现事务的提交和回滚实例
mysql创建存储过程的官方语法为: START TRANSACTION | BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] RO ...
- mysql提交事务_mysql事务的实现原理
此篇文章算是对mysql事务的一个总结,基本把mysql事务相关的知识点都涵盖到了,面试问来问去无非也就是这些,在了解这些之前我们先对mysql在执行的过程中有一个整体的认识,如下图 如上图所示,My ...
- 【檀越剑指大厂--mysql】mysql高阶篇
文章目录 一.Mysql 基础 1.数据库与实例? 2.mysql 的配置文件 3.mysql 体系结构 4.innodb 的特点? 5.innodb 和 myisam 的区别 6.其他存储引擎? 7 ...
- MySQL存储引擎 lnnoDB逻辑架构 innodb存储引擎表空间(ibd文件)详解 回滚日志的物理空间
文章目录 存储引擎 一 MySQL组织架构 二 查看存储引擎信息 三 修改存储引擎 3.1 配置文件修改存储引擎 3.2 临时修改存储引擎 3.3 建表时修改存储引擎 四 存储引擎实验 五 数据库升级 ...
- mysql 事务 回滚 原理_mysql 事务的实现原理
一. 开篇 相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)等.今天想跟大家一起研究 ...
最新文章
- CSS自定义鼠标样式。JS获取鼠标坐标,实现提示气泡框跟随鼠标移动
- cv2.rectangle()画出矩形的用法
- OC:数组排序、时间格式化字符串
- ajax表单排序java,java如何区分是form表单请求,还是ajax请求
- Oracle 11gR2 Patchset 不同文件作用 说明
- 应该是最全的算法学习路线了吧法学习路线了吧
- 03_SpringCloud整合Ribbon实现负载均衡
- RabbitMQ入门HelloWorld(C#)(翻译)
- Java 面向对象 --单例模式
- HDU 3350 #define is unsafe
- 罗格斯大学计算机科学排名,罗格斯大学计算机工程硕士专业排名读完这篇立即秒懂...
- 笔记本电池续航测试软件,电池续航能力测试及整机试用总结
- linux IIC子系统分析(七)——实例分析通过i2c-dev操作I2C设备
- 免费下载国内知网和万方等平台文档,及外文文献
- 乐玩插件和大漠插件哪个好_2019年都用过哪些Chrome插件?分享30个好用的插件,提升上网体验...
- AndroidStudio haxm installer win10安装失败问题建议
- Java调用kjb文件
- 数据采集系统的抗干扰措施
- Spire.Doc在Word中插入图片时,自适应宽度设置
- R语言基于mediation包行中介效应分析(2)
热门文章
- Shell编程之sed工具
- 【2023年EI会议分享】第二届电子信息工程与数据处理国际学术会议(EIEDP 2023)
- 最后一次正确配置计算机,win10进入最后一次正确配置的三种方法
- (Java)IntelliJ IDEA 2021.1使用技巧、常用快捷键大全(win+mac)
- python可以用于dsp吗,Python DSP,自动增益控制(AGC)
- 《信息论与编码》学习笔记
- yii2 smarty php,yii框架整合Smarty
- 初入职场|入门互联网产品经理
- 一嗨租车今晚纽交所上市:发行价12美元
- 基于ThinkPHP6+Layui商城管理系统开发框架