最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決MybatisPlus?SqlServer?OFFSET?分頁問題

 更新時間:2022年04月21日 14:56:43   作者:cying2029  
這篇文章主要介紹了MybatisPlus?SqlServer?OFFSET?分頁問題,在分頁的時候有錯誤問題本文給大家記錄下來,方便大家查閱,需要的朋友可以參考下

問題

使用MybatisPlus 連接 SqlServer 數(shù)據(jù)庫 ,在分頁的時候發(fā)生了如下的報(bào)錯,sql語句和報(bào)錯如下:

Cause: com.microsoft.sqlserver.jdbc.SQLServerException: “@P0”附近有語法錯誤。
...
SQL: SELECT  * FROM tb_admin  OFFSET 0 ROWS FETCH NEXT 15 ROWS ONLY

錯誤源碼重現(xiàn)

依賴

		<!-- mybatis-plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>
        <!--        SqlServer依賴-->
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <scope>runtime</scope>
            <version>7.4.1.jre8</version>
        </dependency>

配置分頁

@Configuration
public class MybatisPlusConfig {
    /**
     *   mybatis-plus分頁插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.SQL_SERVER));
        return interceptor;
    }
}

分頁處

//開始分頁
IPage<Admin> pageInfo = new Page<Admin>().setCurrent(current).setSize(size);
pageInfo = adminService.page(pageInfo, wrapper); //報(bào)錯點(diǎn)

找資料

OFFSET 0 ROWS FETCH NEXT 15 ROWS ONLY 是SqlServer2012之后才有的
關(guān)鍵字解析:

  • Offset子句:用于指定跳過(Skip)的數(shù)據(jù)行;
  • Fetch子句:該子句在Offset子句之后執(zhí)行,表示在跳過(Sikp)指定數(shù)量的數(shù)據(jù)行之后,返回一定數(shù)據(jù)量的數(shù)據(jù)行;
  • 執(zhí)行順序:Offset子句必須在Order By 子句之后執(zhí)行,F(xiàn)etch子句必須在Offset子句之后執(zhí)行;

所以解決問題的關(guān)鍵是,加一個排序。

至于為什么,我大致看了一下其他的解釋,說得加一個唯一字段排序,否則系統(tǒng)排序結(jié)果不唯一?于是我隨便試了一下order by 非唯一字段一樣分頁正常,這種說法說不通。
如果有懂的,歡迎評論區(qū)留言

解決

在page之前,添加orderby字句

//開始分頁
IPage<Admin> pageInfo = new Page<Admin>().setCurrent(current).setSize(size);
wrapper.orderByDesc("id");
pageInfo = adminService.page(pageInfo, wrapper); //報(bào)錯點(diǎn)

到此這篇關(guān)于MybatisPlus SqlServer OFFSET 分頁問題的文章就介紹到這了,更多相關(guān)MybatisPlus SqlServer分頁內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

慈溪市| 绍兴县| 清新县| 册亨县| 兴义市| 鄄城县| 潞城市| 大埔区| 扶余县| 红原县| 博爱县| 大同市| 广饶县| 天祝| 巴青县| 辽宁省| 石屏县| 寿阳县| 枞阳县| 綦江县| 三亚市| 宿迁市| 伊通| 五指山市| 彭州市| 渭南市| 昭通市| 河东区| 余庆县| 吴江市| 江口县| 临颍县| 洪湖市| 镇平县| 海兴县| 孟村| 子长县| 纳雍县| 自治县| 徐闻县| 铜山县|