zoukankan      html  css  js  c++  java
  • 物理分页和内存分页-引用

    引用博客:

    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

  • 相关阅读:
    难找的对象
    欺负10086客服小姐(超搞笑)
    左手,请握紧你的右手!
    Discuz! 6.x/7.x EXP
    【超搞视频】  另类乞讨让你笑掉大牙 !
    GNU/Linux平台的C程序开发及程序运行环境
    SICK LMS200激光数据采集程序说明
    郭云深划分武学境界
    Discuz XSS得webshell
    200条装修小常识(结婚,不结婚的都要看一下,很有用的)
  • 原文地址:https://www.cnblogs.com/wangymd/p/13186344.html
Copyright © 2011-2022 走看看