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   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
上传中...
上传图片
插入图片