你好,可以通过以下几个方式去处理
1、下载的代码里语法稍微有点问题,这个许多学员看到后都自己解决了,这里单独说一下。SysDeptMapper.xml里batchUpdateLevel里foreach定义的变量和使用时不一致
<update id="batchUpdateLevel" parameterType="map">
<foreach collection="sysDeptList" item="sysDept" separator=";">
UPDATE sys_dept
SET level = #{sysDept.level}
WHERE id = #{sysDept.id}
</foreach>
</update>
2、这个没问题后,检查一下durid的配置,applicationContext.xml里
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="${db.driverClassName}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
<property name="initialSize" value="3" />
<property name="minIdle" value="3" />
<property name="maxActive" value="20" />
<property name="maxWait" value="60000" />
<property name="filters" value="stat,wall" />
</bean>
可以尝试把 <property name="filters" value="stat,wall" /> 中wall 移除看批量更新是否ok,这个配置兼容性不是特别好
3、如果异常依旧存在,那么可以修改一下数据库连接串,setting.properties里
db.url=jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=UTF-8
在这个连接串后面再拼上一段:&allowMultiQueries=true
mysql版本比较低时,需要通过这个参数显式声明支持批量操作