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事务处理的无法回滚问题相关推荐

  1. MySQL操作成功之后Redis操作失败的回滚问题

    在项目中有个需求,需要保证MySQL数据库和Redis缓存数据的一致性. 一般增删改都是先操作MySQL数据库,成功之后再操作Redis,但这里有个问题,如果MySQL操作成功了,但Redis突然出现 ...

  2. MySQL数据库的事务开启,提交和回滚

    事务(transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位. 基于事务的原子性.一致性.隔离性和持续性特征,可以将相关的数据操作定义到一个事务 ...

  3. mysql重做日志_详解MySQL 重做日志(redo log)与回滚日志(undo logo)

    前言: 前面文章讲述了 MySQL 系统中常见的几种日志,其实还有事务相关日志 redo log 和 undo log 没有介绍.相对于其他几种日志而言, redo log 和 undo log 是更 ...

  4. jsp mysql事务锁,JSP操作数据库的事务回滚

    基础介绍 1.先设置为手动提交 conn.setAutoCommit(false); //将自动提交设置为false 2.若成功则提交 conn.commit(); //当操作成功后手动提交 3.若失 ...

  5. workbench 手动提交事务_mysql实现事务的提交和回滚实例

    mysql创建存储过程的官方语法为: START TRANSACTION | BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] RO ...

  6. mysql提交事务_mysql事务的实现原理

    此篇文章算是对mysql事务的一个总结,基本把mysql事务相关的知识点都涵盖到了,面试问来问去无非也就是这些,在了解这些之前我们先对mysql在执行的过程中有一个整体的认识,如下图 如上图所示,My ...

  7. 【檀越剑指大厂--mysql】mysql高阶篇

    文章目录 一.Mysql 基础 1.数据库与实例? 2.mysql 的配置文件 3.mysql 体系结构 4.innodb 的特点? 5.innodb 和 myisam 的区别 6.其他存储引擎? 7 ...

  8. MySQL存储引擎 lnnoDB逻辑架构 innodb存储引擎表空间(ibd文件)详解 回滚日志的物理空间

    文章目录 存储引擎 一 MySQL组织架构 二 查看存储引擎信息 三 修改存储引擎 3.1 配置文件修改存储引擎 3.2 临时修改存储引擎 3.3 建表时修改存储引擎 四 存储引擎实验 五 数据库升级 ...

  9. mysql 事务 回滚 原理_mysql 事务的实现原理

    一. 开篇 相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)等.今天想跟大家一起研究 ...

最新文章

  1. CSS自定义鼠标样式。JS获取鼠标坐标,实现提示气泡框跟随鼠标移动
  2. cv2.rectangle()画出矩形的用法
  3. OC:数组排序、时间格式化字符串
  4. ajax表单排序java,java如何区分是form表单请求,还是ajax请求
  5. Oracle 11gR2 Patchset 不同文件作用 说明
  6. 应该是最全的算法学习路线了吧法学习路线了吧
  7. 03_SpringCloud整合Ribbon实现负载均衡
  8. RabbitMQ入门HelloWorld(C#)(翻译)
  9. Java 面向对象 --单例模式
  10. HDU 3350 #define is unsafe
  11. 罗格斯大学计算机科学排名,罗格斯大学计算机工程硕士专业排名读完这篇立即秒懂...
  12. 笔记本电池续航测试软件,电池续航能力测试及整机试用总结
  13. linux IIC子系统分析(七)——实例分析通过i2c-dev操作I2C设备
  14. 免费下载国内知网和万方等平台文档,及外文文献
  15. 乐玩插件和大漠插件哪个好_2019年都用过哪些Chrome插件?分享30个好用的插件,提升上网体验...
  16. AndroidStudio haxm installer win10安装失败问题建议
  17. Java调用kjb文件
  18. 数据采集系统的抗干扰措施
  19. Spire.Doc在Word中插入图片时,自适应宽度设置
  20. R语言基于mediation包行中介效应分析(2)

热门文章

  1. Shell编程之sed工具
  2. 【2023年EI会议分享】第二届电子信息工程与数据处理国际学术会议(EIEDP 2023)
  3. 最后一次正确配置计算机,win10进入最后一次正确配置的三种方法
  4. (Java)IntelliJ IDEA 2021.1使用技巧、常用快捷键大全(win+mac)
  5. python可以用于dsp吗,Python DSP,自动增益控制(AGC)
  6. 《信息论与编码》学习笔记
  7. yii2 smarty php,yii框架整合Smarty
  8. 初入职场|入门互联网产品经理
  9. 一嗨租车今晚纽交所上市:发行价12美元
  10. 基于ThinkPHP6+Layui商城管理系统开发框架