900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > mybatis删除mysql提交事务 MYsql单独使用mybatis事务处理的无法回滚问题

mybatis删除mysql提交事务 MYsql单独使用mybatis事务处理的无法回滚问题

时间:2019-11-04 14:51:25

相关推荐

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:///dtd/mybatis-3-mapper.dtd">/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})

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。