2 wangjiguoqudewo wangjiguoqudewo 于 2017.09.04 22:16 提问

mybatis 批量更新传值问题 2C

项目是spring boot的框架

yml文件:

图片说明

图片说明

mapper 批量更新语句

图片说明

报错信息:

图片说明

结果传值不成功!

调整mapper如下:
图片说明

报错信息:

图片说明

两个mapper比较得出:#{}取值不成功 ${}取值可以,但是:
1、mapper里的其它语句都是#{}取值
2、数据库里的id都是uuid,${id}取值成功但是取出来的不是字符串
于早作了如下改变,

图片说明

还是报错,信息如下:

图片说明

上面这条sql在数据库里能执行,但是在程序里报注入异常
于是,我想是数据库连接里什么配置没有开启,修改数据库url连接如下:
url:jdbc:mysql://127.0.0.1:3306/test?allowMultiQueries=true&autoReconnect=true&characterEncoding=utf-8

mapper依次如上三次修改配置,运行都报错。。。

崩溃了,我真的不知道这是什么问题了?

有知道的兄弟,请不吝赐教。

3个回答

qq_33727653
qq_33727653   Rxr 2017.09.05 09:05

楼主这不是参数问题是muti-statement not allow问题,就是不能在一个sql语句中写多条语句(大概那么个意思)。建议调整数据库配置,比如jdbc:mysql://192.168.1.236:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true 。。。。关键点在于allowMultiQueries=true。如果没解决----楼主可百度下muti-statement not allow

congge_1993
congge_1993   2017.09.05 10:20

yml配置里面URL改成楼上说的那样试试

wangjiguoqudewo
wangjiguoqudewo   2017.09.16 00:10

谢谢楼上两位,但是我的配置里面已经加上了allowMultiQueries=true
查找了很多资料,终于解决问题,现将解决方案献上:

1、yml配置仅改了 filters: stat,slf4j 去掉了wall

图片说明

2、过渡拦截设置 将防火墙过滤设置为ProxyFilters,如果需要配置文件请自行转换

图片说明

这里需要明白ProxyFilters和Filters的区别,Filters是通过字符串映射,ProxyFilters是通过类映射的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于mybatis批量更新操作的相关注意事项
前两天写的博客是mybatis的批量更新的操作 今天写一下mybatis的批量更新的相关注意事项 首先 , 本篇文章采用的是比较耗时的方法 ,但是也是比较通用的, 首先 要进行mybatis的批量操作 先要开启批量 也就是在jdbc 连接信息的URL 后面加上&allowMultiQueries=true 这是dao 方法 int updateAllList(List> list
mybatis 进行批量更新以及效率比较
https://www.cnblogs.com/parryyang/p/5586873.html https://blog.csdn.net/xyjawq1/article/details/74129316 https://blog.csdn.net/xu1916659422/article/details/77971696
mybatis 批量更新(batchUpdate)
第一:修改数据库的连接方式 &&allowMultiQueries=true 比如:jdbc\:mysql\://rdshme0env6yf2n829ympublic.mysql.rds.aliyuncs.com/wlsq_dev_test?useUnicode\=true&characterEncoding\=utf8&allowMultiQueries=true mybatis 配
MyBatis(mysql) 批量更新的坑
mybatis批量更新MySQL的坑
Mybatis 批量更新失败,单条成功
Mybatis 批量更新失败,单条成功在项目开发过程中,结合业务场景,需要对某个表进行批量更新,完成所有的业务代码和Mybatis XML文件后,单元测试时,发现调用批量更新只有一条记录时,执行成功,传入多条记录,进行批量更新时,则提示失败,错误信息如下:org.springframework.jdbc.BadSqlGrammarException: ### Error updating data
mybatis学习之路----批量更新数据两种方法效率对比
点滴记载,点滴进步,愿自己更上一层楼。
mybatis 传入map 进行批量更新操作示例
定义dao接口 void modifyHostId(@Param("hostIds") Map hostIds) throws SQLException; mapper.xml 中定义 update id="modifyHostId" parameterType="java.util.Map"> foreach item="valu
MyBatis中进行批量更新(MySQL数据库)
一、简介在程序开发过程中,往往会遇到需要更新一批数据(批量更新)的情况,这种情况通常有两种方法进行解决。这两种方法各有优点与缺点,这就需要我们根据实际业务需要进行取舍。二、操作1、逐条更新(不推荐)直接在程序上使用循环对数据库进行数据更新,使用这样的方式是最简单、最不容易出错的方式。也不会出现因为一条数据更新失败,而导致全部数据更新失败。执行Java代码如下: updateBatch(List<De
mybatis+mysql的批量更新
mybatis+mysql的批量更新
mybatis执行批量更新update
mybatis执行批量更新update Mybatis的批量插入这里有http://ljhzzyx.blog.163.com/blog/static/38380312201353536375/。目前想批量更新,如果update的值是相同的话,很简单,组织 update table set column='...' where id in (1,2,3)l 这样的sql就可以了。Myb