diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqMenuTest.java b/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqMenuTest.java index bad67f0ce..fdd33c562 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqMenuTest.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqMenuTest.java @@ -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) + "---------------"); + } } diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqMenuService.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqMenuService.java index 9e525304e..37e90f8c4 100644 --- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqMenuService.java +++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/ISqMenuService.java @@ -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; + /** * 修改书签菜单 * diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqMenuServiceImpl.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqMenuServiceImpl.java index 09d709bf4..9702dba87 100644 --- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqMenuServiceImpl.java +++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqMenuServiceImpl.java @@ -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; + } /** * 修改书签菜单