物理分页和内存分页-引用

引用博客:

https://blog.csdn.net/xmfsamsara/article/details/80645998

https://www.cnblogs.com/guanghe/p/10026099.html

关于springboot注册Mybatis插件原理,可以这个文章:https://blog.csdn.net/woshiren123ew/article/details/84957434

 我自己写个代码测试了一下:

    //内存分页
    @Select(" select * from user ")
    List<User> queryUsersByPage1(RowBounds rowBounds);
    
    //物理分页
    @Select(" select * from user limit #{offset,jdbcType=INTEGER},#{pageSize,jdbcType=INTEGER}")
    List<User> queryUsersByPage2(@Param("offset")int offset, @Param("pageSize")int pageSize);
    @Override
    public List<User> queryByPages(int pageNum, int pageSize) {
        int offset = pageNum == 0 ? pageNum : pageNum * (pageSize = pageSize <= 0 ? 10 : pageSize);
        RowBounds rowBounds = new RowBounds(offset, pageSize);
        return userMapper.queryUsersByPage1(rowBounds);
    }

    @Override
    public List<User> queryByPages(int pageNum, int pageSize) {
        int offset = pageNum == 0 ? pageNum : pageNum * (pageSize = pageSize <= 0 ? 10 : pageSize);//return userMapper.queryUsersByPage2(offset,pageSize);
    }
    @RequestMapping("/users/{pageNum}/{pageSize}")
    public List<User> queryByPages(@PathVariable("pageNum") int pageNum, @PathVariable(value = "pageSize")  int pageSize) {
        return userService.queryByPages(pageNum, pageSize);
    }

logback配置debug模式:

2020-06-24 16:31:35.224  INFO 2400 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-06-24 16:31:35.225  INFO 2400 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2020-06-24 16:31:35.226 DEBUG 2400 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Detected StandardServletMultipartResolver
2020-06-24 16:31:35.243 DEBUG 2400 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : enableLoggingRequestDetails='false': request parameters and headers will be masked to prevent unsafe logging of potentially sensitive data
2020-06-24 16:31:35.244  INFO 2400 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 19 ms
2020-06-24 16:31:35.272 DEBUG 2400 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : GET "/users/0/20", parameters={}
2020-06-24 16:31:35.323 DEBUG 2400 --- [nio-8080-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.springboot.mybatis.Application#queryByPages(int, int)
2020-06-24 16:31:35.397 DEBUG 2400 --- [nio-8080-exec-1] org.mybatis.spring.SqlSessionUtils       : Creating a new SqlSession
2020-06-24 16:31:35.417 DEBUG 2400 --- [nio-8080-exec-1] org.mybatis.spring.SqlSessionUtils       : SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5315f966] was not registered for synchronization because synchronization is not active
2020-06-24 16:31:35.442 DEBUG 2400 --- [nio-8080-exec-1] o.s.jdbc.datasource.DataSourceUtils      : Fetching JDBC Connection from DataSource
2020-06-24 16:31:35.444 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : HikariPool-1 - configuration:
2020-06-24 16:31:35.449 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : allowPoolSuspension.............false
2020-06-24 16:31:35.449 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : autoCommit......................true
2020-06-24 16:31:35.449 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : catalog.........................none
2020-06-24 16:31:35.449 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : connectionInitSql...............none
2020-06-24 16:31:35.450 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : connectionTestQuery.............none
2020-06-24 16:31:35.450 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : connectionTimeout...............30000
2020-06-24 16:31:35.450 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : dataSource......................none
2020-06-24 16:31:35.450 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : dataSourceClassName.............none
2020-06-24 16:31:35.450 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : dataSourceJNDI..................none
2020-06-24 16:31:35.451 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : dataSourceProperties............{password=<masked>}
2020-06-24 16:31:35.451 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : driverClassName................."com.mysql.jdbc.Driver"
2020-06-24 16:31:35.451 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : exceptionOverrideClassName......none
2020-06-24 16:31:35.451 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : healthCheckProperties...........{}
2020-06-24 16:31:35.451 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : healthCheckRegistry.............none
2020-06-24 16:31:35.451 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : idleTimeout.....................600000
2020-06-24 16:31:35.452 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : initializationFailTimeout.......1
2020-06-24 16:31:35.452 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : isolateInternalQueries..........false
2020-06-24 16:31:35.452 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : jdbcUrl.........................jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf8
2020-06-24 16:31:35.453 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : leakDetectionThreshold..........0
2020-06-24 16:31:35.453 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : maxLifetime.....................1800000
2020-06-24 16:31:35.453 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : maximumPoolSize.................10
2020-06-24 16:31:35.453 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : metricRegistry..................none
2020-06-24 16:31:35.453 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : metricsTrackerFactory...........none
2020-06-24 16:31:35.453 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : minimumIdle.....................10
2020-06-24 16:31:35.453 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : password........................<masked>
2020-06-24 16:31:35.453 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : poolName........................"HikariPool-1"
2020-06-24 16:31:35.454 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : readOnly........................false
2020-06-24 16:31:35.454 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : registerMbeans..................false
2020-06-24 16:31:35.454 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : scheduledExecutor...............none
2020-06-24 16:31:35.454 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : schema..........................none
2020-06-24 16:31:35.454 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : threadFactory...................internal
2020-06-24 16:31:35.454 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : transactionIsolation............default
2020-06-24 16:31:35.454 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : username........................"root"
2020-06-24 16:31:35.454 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : validationTimeout...............5000
2020-06-24 16:31:35.455  INFO 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2020-06-24 16:31:35.946 DEBUG 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@160935d
2020-06-24 16:31:35.952  INFO 2400 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2020-06-24 16:31:35.961 DEBUG 2400 --- [nio-8080-exec-1] o.m.s.t.SpringManagedTransaction         : JDBC Connection [HikariProxyConnection@341153770 wrapping com.mysql.jdbc.JDBC4Connection@160935d] will not be managed by Spring
2020-06-24 16:31:35.973 DEBUG 2400 --- [nio-8080-exec-1] c.s.m.m.UserMapper.queryUsersByPage1     : ==>  Preparing: select * from user 
2020-06-24 16:31:36.015 DEBUG 2400 --- [nio-8080-exec-1] c.s.m.m.UserMapper.queryUsersByPage1     : ==> Parameters: 
2020-06-24 16:31:36.053 DEBUG 2400 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Pool stats (total=1, active=1, idle=0, waiting=0)
2020-06-24 16:31:36.084  INFO 2400 --- [nio-8080-exec-1] c.s.m.plugin.SqlStatementInterceptor     : 执行SQL耗时:69ms
2020-06-24 16:31:36.085 DEBUG 2400 --- [nio-8080-exec-1] org.mybatis.spring.SqlSessionUtils       : Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5315f966]
2020-06-24 16:31:36.100 DEBUG 2400 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@1ee4417c
2020-06-24 16:31:36.120 DEBUG 2400 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@dc20ca4
2020-06-24 16:31:36.143 DEBUG 2400 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@142a7aac
2020-06-24 16:31:36.171 DEBUG 2400 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@55e34bc6
2020-06-24 16:31:36.179 DEBUG 2400 --- [nio-8080-exec-1] m.m.a.RequestResponseBodyMethodProcessor : Using 'application/json;q=0.8', given [text/html, application/xhtml+xml, image/webp, image/apng, application/xml;q=0.9, application/signed-exchange;v=b3;q=0.9, */*;q=0.8] and supported [application/json, application/*+json, application/json, application/*+json]
2020-06-24 16:31:36.182 DEBUG 2400 --- [nio-8080-exec-1] m.m.a.RequestResponseBodyMethodProcessor : Writing [[User(id=1, name=u0), User(id=2, name=u1), User(id=3, name=u2), User(id=4, name=u3), User(id=5, name (truncated)...]
2020-06-24 16:31:36.190 DEBUG 2400 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@5a470d91
2020-06-24 16:31:36.213 DEBUG 2400 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@6aff4919
2020-06-24 16:31:36.228 DEBUG 2400 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@75db8c3a
2020-06-24 16:31:36.243 DEBUG 2400 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@33ba677a
2020-06-24 16:31:36.254 DEBUG 2400 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@81ac576
2020-06-24 16:31:36.254 DEBUG 2400 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - After adding stats (total=10, active=0, idle=10, waiting=0)
2020-06-24 16:31:36.338 DEBUG 2400 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed 200 OK
2020-06-24 16:32:06.059 DEBUG 2400 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Pool stats (total=10, active=0, idle=10, waiting=0)
2020-06-24 16:32:06.059 DEBUG 2400 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Fill pool skipped, pool is at sufficient level.
2020-06-24 16:34:09.453  INFO 5124 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-06-24 16:34:09.454  INFO 5124 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2020-06-24 16:34:09.454 DEBUG 5124 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Detected StandardServletMultipartResolver
2020-06-24 16:34:09.472 DEBUG 5124 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : enableLoggingRequestDetails='false': request parameters and headers will be masked to prevent unsafe logging of potentially sensitive data
2020-06-24 16:34:09.472  INFO 5124 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 18 ms
2020-06-24 16:34:09.496 DEBUG 5124 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : GET "/users/0/20", parameters={}
2020-06-24 16:34:09.512 DEBUG 5124 --- [nio-8080-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.springboot.mybatis.Application#queryByPages(int, int)
2020-06-24 16:34:09.576 DEBUG 5124 --- [nio-8080-exec-1] org.mybatis.spring.SqlSessionUtils       : Creating a new SqlSession
2020-06-24 16:34:09.591 DEBUG 5124 --- [nio-8080-exec-1] org.mybatis.spring.SqlSessionUtils       : SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@38f130af] was not registered for synchronization because synchronization is not active
2020-06-24 16:34:09.609 DEBUG 5124 --- [nio-8080-exec-1] o.s.jdbc.datasource.DataSourceUtils      : Fetching JDBC Connection from DataSource
2020-06-24 16:34:09.611 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : HikariPool-1 - configuration:
2020-06-24 16:34:09.615 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : allowPoolSuspension.............false
2020-06-24 16:34:09.615 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : autoCommit......................true
2020-06-24 16:34:09.616 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : catalog.........................none
2020-06-24 16:34:09.616 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : connectionInitSql...............none
2020-06-24 16:34:09.616 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : connectionTestQuery.............none
2020-06-24 16:34:09.616 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : connectionTimeout...............30000
2020-06-24 16:34:09.616 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : dataSource......................none
2020-06-24 16:34:09.616 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : dataSourceClassName.............none
2020-06-24 16:34:09.617 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : dataSourceJNDI..................none
2020-06-24 16:34:09.618 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : dataSourceProperties............{password=<masked>}
2020-06-24 16:34:09.618 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : driverClassName................."com.mysql.jdbc.Driver"
2020-06-24 16:34:09.618 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : exceptionOverrideClassName......none
2020-06-24 16:34:09.618 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : healthCheckProperties...........{}
2020-06-24 16:34:09.619 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : healthCheckRegistry.............none
2020-06-24 16:34:09.619 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : idleTimeout.....................600000
2020-06-24 16:34:09.619 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : initializationFailTimeout.......1
2020-06-24 16:34:09.619 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : isolateInternalQueries..........false
2020-06-24 16:34:09.620 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : jdbcUrl.........................jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf8
2020-06-24 16:34:09.620 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : leakDetectionThreshold..........0
2020-06-24 16:34:09.620 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : maxLifetime.....................1800000
2020-06-24 16:34:09.620 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : maximumPoolSize.................10
2020-06-24 16:34:09.620 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : metricRegistry..................none
2020-06-24 16:34:09.621 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : metricsTrackerFactory...........none
2020-06-24 16:34:09.621 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : minimumIdle.....................10
2020-06-24 16:34:09.621 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : password........................<masked>
2020-06-24 16:34:09.621 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : poolName........................"HikariPool-1"
2020-06-24 16:34:09.622 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : readOnly........................false
2020-06-24 16:34:09.622 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : registerMbeans..................false
2020-06-24 16:34:09.622 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : scheduledExecutor...............none
2020-06-24 16:34:09.622 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : schema..........................none
2020-06-24 16:34:09.622 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : threadFactory...................internal
2020-06-24 16:34:09.623 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : transactionIsolation............default
2020-06-24 16:34:09.623 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : username........................"root"
2020-06-24 16:34:09.623 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariConfig           : validationTimeout...............5000
2020-06-24 16:34:09.623  INFO 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2020-06-24 16:34:10.182 DEBUG 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@36fd4e70
2020-06-24 16:34:10.186  INFO 5124 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2020-06-24 16:34:10.208 DEBUG 5124 --- [nio-8080-exec-1] o.m.s.t.SpringManagedTransaction         : JDBC Connection [HikariProxyConnection@77327519 wrapping com.mysql.jdbc.JDBC4Connection@36fd4e70] will not be managed by Spring
2020-06-24 16:34:10.223 DEBUG 5124 --- [nio-8080-exec-1] c.s.m.m.UserMapper.queryUsersByPage2     : ==>  Preparing: select * from user limit ?,? 
2020-06-24 16:34:10.274 DEBUG 5124 --- [nio-8080-exec-1] c.s.m.m.UserMapper.queryUsersByPage2     : ==> Parameters: 0(Integer), 20(Integer)
2020-06-24 16:34:10.287 DEBUG 5124 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Pool stats (total=1, active=1, idle=0, waiting=0)
2020-06-24 16:34:10.308 DEBUG 5124 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@58c65520
2020-06-24 16:34:10.324 DEBUG 5124 --- [nio-8080-exec-1] c.s.m.m.UserMapper.queryUsersByPage2     : <==      Total: 20
2020-06-24 16:34:10.333  INFO 5124 --- [nio-8080-exec-1] c.s.m.plugin.SqlStatementInterceptor     : 执行SQL耗时:59ms
2020-06-24 16:34:10.334 DEBUG 5124 --- [nio-8080-exec-1] org.mybatis.spring.SqlSessionUtils       : Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@38f130af]
2020-06-24 16:34:10.339 DEBUG 5124 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@78e2df9
2020-06-24 16:34:10.384 DEBUG 5124 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@557eb168
2020-06-24 16:34:10.407 DEBUG 5124 --- [nio-8080-exec-1] m.m.a.RequestResponseBodyMethodProcessor : Using 'application/json;q=0.8', given [text/html, application/xhtml+xml, image/webp, image/apng, application/xml;q=0.9, application/signed-exchange;v=b3;q=0.9, */*;q=0.8] and supported [application/json, application/*+json, application/json, application/*+json]
2020-06-24 16:34:10.409 DEBUG 5124 --- [nio-8080-exec-1] m.m.a.RequestResponseBodyMethodProcessor : Writing [[User(id=1, name=u0), User(id=2, name=u1), User(id=3, name=u2), User(id=4, name=u3), User(id=5, name (truncated)...]
2020-06-24 16:34:10.413 DEBUG 5124 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@665455c6
2020-06-24 16:34:10.439 DEBUG 5124 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@3ff93023
2020-06-24 16:34:10.453 DEBUG 5124 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@12cfb887
2020-06-24 16:34:10.468 DEBUG 5124 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@73627f49
2020-06-24 16:34:10.482 DEBUG 5124 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@2ae36913
2020-06-24 16:34:10.494 DEBUG 5124 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.jdbc.JDBC4Connection@562159a4
2020-06-24 16:34:10.494 DEBUG 5124 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - After adding stats (total=10, active=0, idle=10, waiting=0)
2020-06-24 16:34:10.560 DEBUG 5124 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed 200 OK

内存分页日志中未显示返回结果条数。

同时代码中增加了统计SQL耗时的拦截器:

package com.springboot.mybatis.plugin;

import java.sql.Statement;
import java.util.Properties;

import org.apache.ibatis.executor.statement.StatementHandler;
import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.plugin.Intercepts;
import org.apache.ibatis.plugin.Invocation;
import org.apache.ibatis.plugin.Plugin;
import org.apache.ibatis.plugin.Signature;
import org.apache.ibatis.session.ResultHandler;
import org.springframework.stereotype.Component;

import lombok.extern.slf4j.Slf4j;

@Component
@Slf4j
@Intercepts({@Signature(type = StatementHandler.class, method = "query", args = {Statement.class, ResultHandler.class})})
public class SqlStatementInterceptor implements Interceptor {
    @Override
    public Object intercept(Invocation invocation) throws Throwable {
        long startTime = System.currentTimeMillis();
        try {
            return invocation.proceed();
        } finally {
            long endTime = System.currentTimeMillis();
            log.info("执行SQL耗时:" + (endTime - startTime) + "ms");

        }
    }

    @Override
    public Object plugin(Object target) {
        return Plugin.wrap(target, this);
    }

    @Override
    public void setProperties(Properties properties) {

    }
}

代码地址:https://github.com/wangymd/springboot.git

原文地址:https://www.cnblogs.com/wangymd/p/13186344.html