版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Honnyee/article/details/85337974
mybatis运行mssql语句的时候,报这个错mssql报错: java.sql.SQLException: '@P0' 附近有语法错误
原因:
Top后面是不允许使用?占位符,‘@P0’附近有语法错误就是由此引起的。需使用拼接sql语句的方法。
@P0指的是第一个参数附近有错误,要是在第二个参数(?)附近,则错误为'@P1' 附近有语法错误。
解决:
所以在mybatis中,传参的写法应该是: ${XXX} 这样是动态拼接
例如:
SELECT top ${pageSize} id,type,title,createTime from lyg_system_bugRecord
WHERE name= #{name,jdbcType=VARCHAR}
AND id not in (SELECT top ${index} id from tablename ORDER BY createTime DESC)
ORDER BY createTime DESC;