wangjiguoqudewo
2017-09-04 14:16 阅读 2.9k

mybatis 批量更新传值问题

2

项目是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 砸死接触 2017-09-05 01: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

    点赞 1 评论 复制链接分享
  • congge_1993 瞭望塔 2017-09-05 02:20

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

    点赞 评论 复制链接分享
  • wangjiguoqudewo 白菜白菜白又菜 2017-09-15 16:10

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

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

    图片说明

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

    图片说明

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

    点赞 评论 复制链接分享

相关推荐