mybatis 事务 和 批量插入
This commit is contained in:
parent
bb01b94a52
commit
8abfbae5ff
ruoyi-admin/src/main/java/com/ruoyi/web/test/controller
ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service
@ -4,9 +4,16 @@ import com.ruoyi.bookmark.domain.SqBookmark;
|
||||
import com.ruoyi.bookmark.domain.SqMenu;
|
||||
import com.ruoyi.bookmark.mapper.SqBookmarkMapper;
|
||||
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.junit.Test;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.omg.PortableServer.THREAD_POLICY_ID;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@ -22,7 +29,11 @@ public class SqMenuTest extends BaseSpringBootTest{
|
||||
@Autowired
|
||||
SqMenuMapper sqMenuMapper;
|
||||
@Autowired
|
||||
private ISqMenuService iSqMenuService;
|
||||
@Autowired
|
||||
SqBookmarkMapper sqBookmarkMapper;
|
||||
@Autowired
|
||||
SqlSessionTemplate sqlSessionTemplate;
|
||||
@Test
|
||||
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 com.ruoyi.bookmark.domain.SqMenu;
|
||||
import org.omg.CORBA.INTERNAL;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 书签菜单Service接口
|
||||
@ -81,6 +82,15 @@ public interface ISqMenuService
|
||||
*/
|
||||
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.domain.SqMenu;
|
||||
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业务层处理
|
||||
@ -137,6 +140,34 @@ public class SqMenuServiceImpl implements ISqMenuService
|
||||
}
|
||||
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