码上敲享录 > sql增删改查之常见报错异常解答 > Cause: com.microsoft.sqlserver.jdbc.SQLServerException: '@P0' 附近有语法错误。

Cause: com.microsoft.sqlserver.jdbc.SQLServerException: '@P0' 附近有语法错误。

上一章章节目录下一章 2019-01-11已有6734人阅读 评论(0)

Cause: com.microsoft.sqlserver.jdbc.SQLServerException: '@P0' 附近有语法错误。

解决方法:

insert into tableA (id,name,age) values #{msg},报错:Cause: com.microsoft.sqlserver.jdbc.SQLServerException: '@P0' 附近有语法错误,

后来查找资料,修改为insert into tableA (id,name,age) values ${msg},就插入数据库成功了。


mybatis中的#和$的区别

1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".

2. $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是111,那么解析成sql时的值为order by user_id, 如果传入的值是id,则解析成的sql为order by id.
3.#方式能够很大程度防止sql注入。


4.$方式无法防止Sql注入

  


向大家推荐《Activiti工作流实战教程》:https://xiaozhuanlan.com/activiti
19

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交