在开发过程中遇到这个问题:

错误说明是SQL语句异常,贴出SQL语句异常处:

通过发现是数据转换异常(例如:Integer和String间转换异常) ,解决方法如下,将#改成$,$可转换成数值类型

但是使用$无法防止Sql注入,所以可以使用bind标签进行设置:

通过bind标签设置的值为varchar类型,需要数值类型强转即可(::integer)
$方式一般用于传入数据库对象,比如传入表名
#方式能够很大程度防止sql注入; $方式无法防止Sql注入。所以尽可能的使用#方式
在MyBatis使用order by排序时动态参数用的是$而不是#($:order by id;#:order by 'id')
版权声明:本文为weixin_41595700原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。