批量更新SQL语法问题

来源:7-6 部门列表树型结构界面开发

慕码人5437048

2020-02-19

在更新部门的Level时,其他内容更新都可以实现,但只要下层有子部门,SQL就会出现错误,是否是我的SQL语法有错?

### Error updating database.  Cause: java.sql.SQLException: sql injection violation, multi-statement not allow : UPDATE sys_dept
            SET level = ?
            WHERE id = ?
         ; 
            UPDATE sys_dept
            SET level = ?
            WHERE id = ?
         ; 
            UPDATE sys_dept
            SET level = ?
            WHERE id = ?
### The error may exist in file [D:\maven\permission\target\permission\WEB-INF\classes\mapper\SysDeptMapper.xml]
### The error may involve com.mmall.dao.SysDeptMapper.batchUpdateLevel

SQL语句是这样的

<update id="batchUpdateLevel" parameterType="map">
    <foreach collection="sysDeptList" item="sysDept" separator=";">
        UPDATE sys_dept
        set level = #{sysDept.level}
        where id = #{sysDept.id}
    </foreach>
</update>


写回答

1回答

Jimin

2020-02-19

你好,你参考一下课程的最新代码和配置调整一下。这个本身sql是没问题的,与本地的版本及配置有关,课程的最新代码做了更多的兼容,参考一下applicationContext.xml里的配置

0
2
慕码人5437048
我找到了解决办法:修改application.properties 1.pring.datasource.druid.filters=stat,wall 删除wall 2.url 添加allowMultiQueries=true
2020-02-20
共2条回复

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2261 学习 · 1347 问题

查看课程