sqlsever2012使用pageHelper分页插件报错解决

错误信息如下:

org.springframework.jdbc.UncategorizedSQLException: 
### Error querying database.  Cause: com.microsoft.sqlserver.jdbc.SQLServerException: “@P0”附近有语法错误。
### The error may exist in file [F:\demo\wxwl\wlcx\target\classes\mapping\CMMatcherMapper.xml]
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT       COID, CR_Idx, CR_Mode, CT_Mode, CR_Fate, RG_Code, RG_Name, AR_Code, AR_Name,     CM_Code, CM_Name, CR_Addr, CR_Style, CR_Grade     FROM CM_Matcher OFFSET ? ROWS FETCH NEXT ? ROWS ONLY
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: “@P0”附近有语法错误。
; uncategorized SQLException; SQL state [S0001]; error code [102]; “@P0”附近有语法错误。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: “@P0”附近有语法错误。

错误信息显示sql 有问题,但一看语法跟配置没有任何的问题
配置:

#分页插件
#pagehelper.dialect=sqlserver2012
pagehelper.reasonable=true
#支持通过 Mapper 接口参数来传递分页参数
pagehelper.support-methods-arguments=true
pagehelper.helper-dialect=sqlserver2012
pagehelper.params=count=countsql
pagehelper.pageSizeZero=true

mapper.xml:

  <select id="getAll" resultMap="BaseResultMap">
    SELECT <include refid="Base_Column_List" /> FROM CM_Matcher
  </select>

将报错的sql 赋值到sqlser2012中执行才发现sql 有问题:
在这里插入图片描述

于是研究了一下2012版本的分页语法并不是标准的sql, 必须要添加order by 才能正常work, 参考: https://blog.wuliping.cn/post/sql-2012-new-features-of-offset-fetch-next-only

最后根据id 排序执行结果如下:
在这里插入图片描述

mapper 修改:

  <select id="getAll" resultMap="BaseResultMap">
    SELECT <include refid="Base_Column_List" /> FROM CM_Matcher ORDER BY COID
  </select>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值