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)等.今天想跟大家一起研究 ...
最新文章
- 关于运行中输入ping后,跳出“打开方式”选择对话框的问题
- android+百度lbs云,百度——LBS.云 v2.0——云存储扩展字段——Android
- 不知道Mysql排序的特性,加班到12点,认了认了!
- 腾讯视频如何缓存视频
- Vue分支循环结构~非常详细哦
- echart添加点击跳转链接事件多次跳转的问题
- es6阮一峰-import、export学习
- 智能配电房综合监控系统的探讨
- 计算机用于材料科学模拟,计算机在材料科学的应用
- Java将指定文件/文件夹压缩成zip、rar压缩文件--解決中文乱码
- 【Audio音频兴趣拓展】如何调试频响曲线?
- 离散Hopfield神经网络摘记
- 本科大学计算机专业排名2015,2015年美国大学本科计算机专业排名
- Debian查看系统版本信息
- 如何将某一文件添加到信任列表?
- 8.1 结构体的定义和使用
- 编译驱动程序报错BufferOverflowFastFailK.lib(loadcfg.obj) : error LNK2001: __guard_eh_cont_count
- 区块链产业发展面临的挑战、发展建议以及趋势丨2021中国区块链产业发展报告...
- w10计算机运行特别卡,Win10电脑运行卡死怎么办?Win10电脑卡死的解决方法
- OPTIONS预检请求