Spring 中jdbcTemplate 实现执行多条sql语句
16lz
2021-01-22
说一下Spring框架中使用jdbcTemplate实现多条sql语句的执行:
很多情况下我们需要处理一件事情的时候需要对多个表执行多个sql语句,比如淘宝下单时,我们确认付款时要对自己银行账户的表里减去订单所需的钱数,即需要更新银行账户的表,同时需要更新淘宝订单的表将订单状态改为“已付款”,这就需要先后执行多个sql(仅仅用于表达执行多的SQL的举例说明,具体淘宝如何实现并不是很清楚~~~~~); 但如果这中间出现电脑断网断电等问题,仅将我们银行账户的钱扣掉了,订单状态并没有改,那我们是不是很惨,但实际上我们并没有遇到这种情况对吧,下面我就来讲一下如何使用Spring 中jdbcTemplate 实现执行多条sql语句,而不出现这种情况
1 @Test 2 public void 权限分配(){ 3 //1.客户端复选框传递过来一个数组1,2 菜单的ID 4 Integer[] menus =new Integer[]{1,2}; 5 //2.声明sql数组 6 String [] sql =new String [menus.length+1]; 7 //3.通过Role_id 200 删除表中数据 8 sql[0] = "delete from role_link_menu where fk_role_id=200"; 9 //4新数据添加到中间表 10 for (int i=0;i<menus.length;i++) { 11 sql[i+1]="insert into role_link_menu(id,fk_role_id,fk_menu_id) values ('"+UUID.randomUUID().toString()+"',200, "+menus[i]+")"; 12 } 13 jdbcTemplate.batchUpdate(sql); 14 }