com.alibaba.druid.filter.stat.StatFilter:148 - merge sql error, dbType mysql

 出错的sql代码段:

        UPDATE `agent`
		SET `name`=#{name},
			`areacode`=#{areacode},
			`address`=#{address},
			`linkman`=#{linkman},
			`tel`=#{tel},
			`staff_type`=${staffType},
			`station_ids`=#{stationIds},
			`username`=#{username},
			`account_blocked`=#{accountBlocked}
		WHERE `id`=#{id};
		<if test="password!=null and password!=''">
			UPDATE `agent` SET `password`=#{password} WHERE `id`=#{id};
		</if>

使用mybatis,在进行数据库查询的时候出现了这个错误:

com.alibaba.druid.filter.stat.StatFilter:148 - merge sql error, dbType postgresql, sql :

 网上搜了一下,大多有两种说法:

1.把druid.stat.mergeSql设置为false就可以了。但是经过实测并不能解决,仍然会报错。

2.把语句里面的表名和属性名全部用``号包起来以避免和sql关键字冲突。实测不能解决,仍然会报错

后来我百度百科里查了一下,mergeSql属性在mysql里是没有用的,mysql并不支持merge,所以修改之后不会有任何作用。

接着分析代码,滤了一遍又一遍,发现一个地方有点不一样:

`staff_type`=${staffType},

这地方用的是$符号不是#号,修改成#号之后,问题解决

但是依稀记得之前使用#号后面的数字做更新是做不到的,所以改成了#号,现在更改回来了又可以了,费解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值