高级映射之事务

jdbc.properties中的allowMultiQueries=true代表可以在一个insert标签中执行多个sql语句,具体实例如下:

测试文件中:

@Test
public void 批量添加资源03() throws Exception {
  List<Menu> menuList = new ArrayList<Menu>();  
  Menu menu = new Menu();
  menu.setMenu_id(1);
  menuList.add(menu);

  menu = new Menu();
  menu.setMenu_id(2);
  menuList.add(menu);

  menu = new Menu();
  menu.setMenu_id(3);
  menuList.add(menu);

  Role role = new Role();
  role.setRole_id(8);
  this.roleDao.addMenuByRole(role, menuList);
  this.sqlSession.commit();
}

映射文件中如下所示:

<!-- 事务:两个sql语句 -->
<insert id="addMenuByRole">
  DELETE FROM role_link_menu WHERE fk_role_id = #{role.role_id};
  INSERT INTO
    role_link_menu
    (fk_role_id,fk_menu_id)
  VALUES
  <foreach collection="menus" item="menu" separator=",">
    (#{role.role_id},#{menu.menu_id})
  </foreach>
</insert>

 

转载于:https://www.cnblogs.com/blogofcookie/p/5598050.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值