spring 隔离级别 测试代码
来源:互联网 发布:imageloader源码解析 编辑:程序博客网 时间:2024/06/06 13:56
@Controller@RequestMapping("/test")@Api(value = "测试", description = "测试")public class TestController { @Autowired private TestService testService; @RequestMapping(value = "listForDirtyRead", method = RequestMethod.GET) @ResponseBody @ApiImplicitParams({}) @ApiOperation(value="listForDirtyRead") public Object listForDirtyRead() { return testService.listForDirtyRead(); } @RequestMapping(value = "insertForDirtyReadAndIllusion", method = RequestMethod.POST) @ResponseBody @ApiImplicitParams({}) @ApiOperation(value="insertForDirtyReadAndIllusion") public void insertForDirtyReadAndIllusion() { testService.insertForDirtyReadAndIllusion(); } @RequestMapping(value = "listForIllusionRead", method = RequestMethod.GET) @ResponseBody @ApiImplicitParams({}) @ApiOperation(value="listForIllusionRead") public Object listForIllusionRead() { return testService.listForIllusionRead(); } @RequestMapping(value = "updateForNoRepeat", method = RequestMethod.POST) @ResponseBody @ApiImplicitParams({}) @ApiOperation(value="updateForNoRepeat") public void updateForNoRepeat() { testService.updateForNoRepeat(); } @RequestMapping(value = "deleteForNoRepeat", method = RequestMethod.POST) @ResponseBody @ApiImplicitParams({}) @ApiOperation(value="deleteForNoRepeat") public void deleteForNoRepeat() { testService.deleteForNoRepeat(); }}
@Servicepublic class TestService { @Autowired private JdbcTemplate jdbcTemplate; @Transactional(isolation = Isolation.READ_COMMITTED) public List<Map<String,Object>> listForDirtyRead() { List<Map<String,Object>> map = jdbcTemplate.queryForList("select * from tao"); return map; } @Transactional public void insertForDirtyReadAndIllusion () { jdbcTemplate.execute("insert into tao values (1,'d')"); try { Thread.sleep(00000); } catch (InterruptedException e) { e.printStackTrace(); } // int a = 1/0; } @Transactional(isolation = Isolation.REPEATABLE_READ) public Object listForIllusionRead() { List<Map<String,Object>> map = jdbcTemplate.queryForList("select * from tao"); try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } List<Map<String,Object>> map2 = jdbcTemplate.queryForList("select * from tao"); Map<String,Object> res = new HashMap<String, Object>(); res.put("before", map); res.put("after", map2); return res; } public void updateForNoRepeat () { jdbcTemplate.execute("update tao set col2 = 'e'"); } public void deleteForNoRepeat() { jdbcTemplate.execute("delete from tao "); }}
数据库:
- CREATE TABLE `tao` (
- `col1` tinyint(3) unsigned NOT NULL DEFAULT '0',
- `col2` varchar(20) DEFAULT NULL,
- PRIMARY KEY (`col1`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8
阅读全文
0 0
- spring 隔离级别 测试代码
- 事务隔离级别 脏读 spring 测试
- 事务隔离级别 幻读 spring 测试
- spring的事务管理,事务隔离级别(代码级别)
- Spring事务隔离级别
- spring 隔离级别
- Spring事务隔离级别
- spring事务隔离级别
- Spring 事务隔离级别
- Spring事务隔离级别
- Spring事务隔离级别
- Spring 事务隔离级别
- Spring 事务隔离级别
- Spring 事务隔离级别
- spring事务隔离级别
- spring事务隔离级别
- Spring事务隔离级别
- Spring事务隔离级别
- zabbix的搭建和简单使用
- 如何下载安装Metasploit
- opendir相关的目录操作
- Servlet之Http协议(一)
- hdu 5950 Recursive sequence
- spring 隔离级别 测试代码
- 加入csdn大家庭
- JTextPane设置居中对其的方法
- centos7 下部署Java EE项目运行环境
- linux之find命令详解
- printk的级别
- 界面控件Essential Studio for ASP.NET Web Forms 2017 v3发布
- moveToThread的最简单用法(依葫芦画瓢即可)(使得线程也更偏向于信号槽的使用方法)
- kafka相关