情景:SSM框架的web项目,数据库连的是sqlserver,借助pageHelper做分页功能。

第一,配置文件mybatis-config.xml
注意点就是: <property name="dialect" value="sqlserver"/>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <!-- 打印查询语句 -->
        <setting name="logImpl" value="STDOUT_LOGGING" />
    </settings>
    <plugins>
    <!-- com.github.pagehelper为PageHelper类所在包名 -->
    <plugin interceptor="com.github.pagehelper.PageHelper">
        <property name="dialect" value="sqlserver"/>
        <!-- 该参数默认为false -->
        <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
        <!-- 和startPage中的pageNum效果一样-->
        <property name="offsetAsPageNum" value="true"/>
        <!-- 该参数默认为false -->
        <!-- 设置为true时,使用RowBounds分页会进行count查询 -->
        <property name="rowBoundsWithCount" value="true"/>
        <!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
        <!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->
        <property name="pageSizeZero" value="true"/>
        <!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
        <!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
        <!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
        <property name="reasonable" value="false"/>
        <!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->
        <!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 -->
        <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值 -->
        <!-- 不理解该含义的前提下,不要随便复制该配置 -->
<!--         <property name="params" value="pageNum=start;pageSize=limit;"/> -->
        <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->
        <property name="returnPageInfo" value="check"/>
    </plugin>
</plugins>
</configuration>

第二,页数从1开始,pageHelper进行了这样的一个统一规定,以往我们手写分页的时候,mysql的首页从0开始。
第三,select * from xxx ORDER BY create_time DESC 查询语句,必须带上order by 功能。
第四,多表关联查询的时候,如果在select 和 from 之间写了具体字段名称,就不会得到 PAGE_ROW_NUMBER 字段值。
那么多表关联该如何查询出这个PAGE_ROW_NUMBER了?

	   语句写成如下这样既可:
	   select * from (
	   		select x.a,x.b,x.c from x 	
	   ) a ORDER BY a.time DESC

关键点就是在原有语句外套一个:select * from (----------) a order by a.time desc

情景:SSM框架的web项目,数据库连的是sqlserver,借助pageHelper做分页功能。第一,配置文件mybatis-config.xml注意点就是: &lt;property name="dialect" value="sqlserver"/&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;!DOCTYPE configur...
文章目录前言一、pom文件引入二、测试总结 Don’t Repeat Yourself,在之前几个项目中,在使用mybatis分页时,一直使用自定义page分页工具类,工具类中包含了 //当前页码 private Integer page; //页展示条目数 private Integer rows= 10; private Integer startWith; private Integer endWith; 几个参数,在进行分页查询时,需要执行count语句计算分页信息,在将
1.JDBCTemplate 基本与jdbc连接数据库的代码差不多,要支持多数据库,最关键的是分页的语句。 解决思路:编写一个统一处理sql的方法,接收业务SQL,根据不同的数据库类型,返回最终处理好的分页SQL。 @Repository public class BaseDao { * 处理业务SQL为可分页SQL * @param sql 业务sql * @param start 开始索引 = (页号 - 1 ) * 每页条数 * @param end 结束索引 =
pagehelper.helperDialect=sqlserver2012 pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql 第一种:ROW_NUMBER() OVER()方式 select * from (     select *, ROW_NUMBER() OVER(Order by ArtistId ) AS RowId from ArtistModels   ) as b where RowId between 10 and 20 ---where RowId BETWEEN 当前页数-1
Mybatis中使用pageHelper 进行分页 pageHelper 是mybatis中一种良好的分页插件,它可以支持任何复杂的单表、多表分页,使用也是非常的简单。 1.导入maven坐标(或者jar包) <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Pageable { int defaultPage() default 0; int defaultSize() default 10; int maxPage() default 500; int maxSize() default 100; boolean
PageHelper是一个用于MyBatis的分页插件,它可以根据不同的数据库类型自动选择合适的分页方式。在配置PageHelper时,你可以使用helperDialect属性来指定分页插件使用的数据库方言。对于SqlServer2008,你可以将helperDialect属性设置为"sqlserver"。在使用SqlServer2012及以上版本时,你需要手动指定为"sqlserver2012",否则会使用SqlServer2005的分页方式。 在配置完pom.xml和MyBatis的配置文件后,你可以在controller层使用PageHelper来实现简单的分页功能。在前端页面中,你可以直接使用a标签实现分页跳转,无需使用ajax和json。 参考链接中的pagehelper中文文档可以帮助你更详细地了解如何使用PageHelper插件。