zoukankan      html  css  js  c++  java
  • Mybatis批量执行语句

    有这样一个需求,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>




  • 相关阅读:
    2019牛客暑期多校训练营(第三场)B题、H题
    2019牛客暑期多校训练营(第四场)k题、j题
    Manacher算法 & Palindrome
    HDU 3336——Count the string
    判断一个点是否在三角形内
    P1052 过河
    P1353 [USACO08JAN]跑步Running
    hdu 1686 Oulipo
    Cyclic Nacklace HDU
    高精地图技术分析
  • 原文地址:https://www.cnblogs.com/chenny3/p/10226203.html
Copyright © 2011-2022 走看看