Mybatis批量执行语句

来源:互联网 发布:linux多线程编程 编辑:程序博客网 时间:2024/06/10 14:38

有这样一个需求,service传一个List<Dept>给数据访问层,需要执行批量修改操作。

所以在配置文件中,会有如下的写法来配置修改的sql语句

<update id="DeptUpdateList"><foreach collection="list" item="item" separator=";">update dept set dept_name=#{item.deptName},dept_address=#{item.deptAddr} where dept_id=#{item.deptId}</foreach></update>

sql连接起来后是update dept set... where dept_id=...;update dept set... where dept_id=...;update dept set... where dept_id=...;....

但是执行的时候会报错。

是因为这样会一次执行多条sql。默认情况下是不允许这样做的


需要我们在mybatis的主配置文件中,为数据源中的url属性值追加&amp;allowMultiQueries=true

<environments default="default"><environment id="default"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&amp;allowMultiQueries=true"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments>




0 0
原创粉丝点击