myibatis中出现“@P0' 附近有语法错误。”
2016-04-27 22:44
253 查看
org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 第 6 行: '@P0' 附近有语法错误。 ### The error may involve com.siny.base.mapper.KindyInfoMapper.findKindyInfo-Inline ### The error occurred while setting parameters ### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 第 6 行: '@P0' 附近有语法错误。 ; bad SQL grammar []; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 第 6 行: '@P0' 附近有语法错误。 org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:233) org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72) org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:71) org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:346) $Proxy5.selectList(Unknown Source) 分析: 语句编译后#{}是预处理状态
在Java中对数据库查询时经常使用“Select Top ? * From 表名 Where 列名 = ?”的SQL语句,此时的问号是PreparedStatement预编译对象的参数占位符,需要使用setXX()系列方法对其赋值后再执行。
但是,Top后面是不允许使用问号占位符的,此处的错误就是由此引起的。
解决:
语句修改为:select top ${top} * from
tb
相关文章推荐
- git rebase简介(基本篇)
- ubuntu下git安装及使用
- 习题三1011
- C++ deques
- File类的使用
- android,闹钟定时功能,实现过程
- 不可变类
- 利用正则表达式统计访问频率
- 个人工作总结09
- 巩固C++(一)----R"()"去转移字符 & 绑定bind & 模板元编程
- 小细节:margin:0 auto 与 text-align:center 的区别
- Noip2010普及组
- Android系统Surface机制的SurfaceFlinger服务渲染应用程序UI的过程分析
- leetcode-easy OJ感想
- 递归小蜜蜂
- linux中页缓冲和块缓冲之概念
- Eclipse 常用设置
- windows开dump
- 概念澄清:Caffe训练过程中的test_iter test_interval等概念
- hdu 3966 Aragorn's Story (树链剖分)