zoukankan      html  css  js  c++  java
  • mybatis中批量更新的问题

    问题:使用mybatis在执批量更新操作时,一直报错执行失败

    解决方法:

    首先打印了SQL语句,发现SQL语句拿出来执行没问题,也可以批量执行。SQL没问题,应该是配置的问题。

    在网上查询和很多资料,都说是在连接数据库的的URL后面加上关键字  allowMultiQueries=true 即可。

    加上之后测试运行,还是同样的错误。

    后来找到一篇源代码分析,提示报错的原因是multiStatementAllow的值为空。

    <bean id="wall-config" class="com.alibaba.druid.wall.WallConfig"> <property name="multiStatementAllow" value="true" /> </bean>

    <bean> <property name="config" ref="wall-config" /> </bean>

    加上上述所述代码,依然报错。

    后来发现问题出来配置重复上。

    2. 在配置springdate数据源时,

    <property name="filters" value="stat,wall" />

    <property name="proxyFilters"> <list> <ref bean="stat-filter" /> <ref bean="wall-filter" /> </list>

    </property>

    上述只需要一个就行,而我同时配置了两个。删除上述第一个即可,运行成功。

    解决步骤:

    1. 连接mysql的url加上关键字  allowMultiQueries=true

    2. 为配置的wall-filter中的multiStatementAllow添加true的值。

    <bean id="wall-config" class="com.alibaba.druid.wall.WallConfig"> <property name="multiStatementAllow" value="true" /> </bean>

    <bean> <property name="config" ref="wall-config" /> </bean>

    3. filters留一个就行,附上配置

    <property name="proxyFilters"> <list> <ref bean="stat-filter" /> <ref bean="wall-filter" /> </list>

    </property>

    <bean id="wall-filter" class="com.alibaba.druid.wall.WallFilter"> <bean id="wall-config" class="com.alibaba.druid.wall.WallConfig"> <property name="multiStatementAllow" value="true" />

    </bean>

    <bean>

    <property name="config" ref="wall-config" /> </bean> <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter"> <property name="mergeSql" value="true"></property> <property name="slowSqlMillis" value="10000"></property> <property name="logSlowSql" value="true"></property> </bean>

  • 相关阅读:
    软工随堂小测——四则运算
    K米测评
    uml用例图
    第二次结对编程作业——毕设导师智能匹配
    原型设计与需求分析
    散列函数的应用及其安全性
    Think In Java读书笔记:内部类覆盖及其初始化
    如何在服务器(centOS系统)上运行JavaWeb项目
    结对工程作业
    《构建之法》——第四、第十七章
  • 原文地址:https://www.cnblogs.com/zchenjian/p/7753533.html
Copyright © 2011-2022 走看看