mybatis 事务 和 批量插入
This commit is contained in:
parent
bb01b94a52
commit
8abfbae5ff
@ -4,9 +4,16 @@ import com.ruoyi.bookmark.domain.SqBookmark;
|
|||||||
import com.ruoyi.bookmark.domain.SqMenu;
|
import com.ruoyi.bookmark.domain.SqMenu;
|
||||||
import com.ruoyi.bookmark.mapper.SqBookmarkMapper;
|
import com.ruoyi.bookmark.mapper.SqBookmarkMapper;
|
||||||
import com.ruoyi.bookmark.mapper.SqMenuMapper;
|
import com.ruoyi.bookmark.mapper.SqMenuMapper;
|
||||||
|
import com.ruoyi.bookmark.service.ISqMenuService;
|
||||||
|
import com.ruoyi.bookmark.service.impl.SqMenuServiceImpl;
|
||||||
|
import org.apache.ibatis.session.ExecutorType;
|
||||||
|
import org.apache.ibatis.session.SqlSession;
|
||||||
import org.apache.velocity.runtime.directive.Foreach;
|
import org.apache.velocity.runtime.directive.Foreach;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.mybatis.spring.SqlSessionTemplate;
|
||||||
|
import org.omg.PortableServer.THREAD_POLICY_ID;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -22,7 +29,11 @@ public class SqMenuTest extends BaseSpringBootTest{
|
|||||||
@Autowired
|
@Autowired
|
||||||
SqMenuMapper sqMenuMapper;
|
SqMenuMapper sqMenuMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private ISqMenuService iSqMenuService;
|
||||||
|
@Autowired
|
||||||
SqBookmarkMapper sqBookmarkMapper;
|
SqBookmarkMapper sqBookmarkMapper;
|
||||||
|
@Autowired
|
||||||
|
SqlSessionTemplate sqlSessionTemplate;
|
||||||
@Test
|
@Test
|
||||||
public void addMenuUplinkSeries() {
|
public void addMenuUplinkSeries() {
|
||||||
|
|
||||||
@ -106,6 +117,29 @@ public class SqMenuTest extends BaseSpringBootTest{
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
//测试mybatis的事务
|
||||||
|
@Test
|
||||||
|
public void test4() throws Exception {
|
||||||
|
SqMenu sqMenu1 = new SqMenu();
|
||||||
|
sqMenu1.setUserId(2L);
|
||||||
|
sqMenu1.setMenuName("AAAAAAAAA");
|
||||||
|
int count = iSqMenuService.insertSqMenu2(sqMenu1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//批量插入
|
||||||
|
@Test
|
||||||
|
public void testInsertBatch2() throws Exception {
|
||||||
|
long start = System.currentTimeMillis();
|
||||||
|
SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(ExecutorType.BATCH, false);//跟上述sql区别
|
||||||
|
SqMenuMapper mapper = sqlSession.getMapper(SqMenuMapper.class);
|
||||||
|
for (int i = 0; i < 10; i++) {
|
||||||
|
SqMenu sqMenu1 = new SqMenu();
|
||||||
|
sqMenu1.setUserId(2L);
|
||||||
|
sqMenu1.setMenuName("AAAAAAAAA"+i);
|
||||||
|
mapper.insertSqMenu(sqMenu1);
|
||||||
|
}
|
||||||
|
sqlSession.commit();
|
||||||
|
long end = System.currentTimeMillis();
|
||||||
|
System.out.println("---------------" + (start - end) + "---------------");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package com.ruoyi.bookmark.service;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.ruoyi.bookmark.domain.SqMenu;
|
import com.ruoyi.bookmark.domain.SqMenu;
|
||||||
import org.omg.CORBA.INTERNAL;
|
import org.omg.CORBA.INTERNAL;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 书签菜单Service接口
|
* 书签菜单Service接口
|
||||||
@ -81,6 +82,15 @@ public interface ISqMenuService
|
|||||||
*/
|
*/
|
||||||
public int insertSqMenu(SqMenu sqMenu);
|
public int insertSqMenu(SqMenu sqMenu);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增书签菜单 测试事务
|
||||||
|
*
|
||||||
|
* @param sqMenu 书签菜单
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Transactional
|
||||||
|
public int insertSqMenu2(SqMenu sqMenu)throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改书签菜单
|
* 修改书签菜单
|
||||||
*
|
*
|
||||||
|
@ -16,6 +16,9 @@ import org.springframework.stereotype.Service;
|
|||||||
import com.ruoyi.bookmark.mapper.SqMenuMapper;
|
import com.ruoyi.bookmark.mapper.SqMenuMapper;
|
||||||
import com.ruoyi.bookmark.domain.SqMenu;
|
import com.ruoyi.bookmark.domain.SqMenu;
|
||||||
import com.ruoyi.bookmark.service.ISqMenuService;
|
import com.ruoyi.bookmark.service.ISqMenuService;
|
||||||
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||||
|
import org.springframework.transaction.support.TransactionSynchronization;
|
||||||
|
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 书签菜单Service业务层处理
|
* 书签菜单Service业务层处理
|
||||||
@ -137,6 +140,34 @@ public class SqMenuServiceImpl implements ISqMenuService
|
|||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 新增书签菜单 测试事务
|
||||||
|
*
|
||||||
|
* @param sqMenu 书签菜单
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertSqMenu2 (SqMenu sqMenu)throws Exception
|
||||||
|
{
|
||||||
|
sqMenu.setCreateTime(DateUtils.getNowDate());
|
||||||
|
sqMenu.setMenuName("AAAAAAAAAAAAAAA");
|
||||||
|
int i = sqMenuMapper.insertSqMenu(sqMenu);
|
||||||
|
if (i>0){
|
||||||
|
System.out.println("添加成功了");
|
||||||
|
// int a = 9/0; //模拟异常
|
||||||
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//强制事务回滚
|
||||||
|
}
|
||||||
|
sqMenu.setUserId(2L);
|
||||||
|
sqMenuMapper.insertSqMenu(sqMenu);
|
||||||
|
|
||||||
|
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
||||||
|
@Override
|
||||||
|
public void afterCommit() {
|
||||||
|
System.out.println("事务已经提交了 后增强!!!!");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改书签菜单
|
* 修改书签菜单
|
||||||
|
Loading…
x
Reference in New Issue
Block a user