先上结论:
pagehelper是动态代理mybatis的底层拼接sql,而不是从java层处理数据。
pagehelper一次查询中执行了两条sql,一条是用户请求的sql,一条是查询所有满足数据的总条数。
验证过程:
将如下配置加入application.yml文件中,目的是在控制台打印sql
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml
##打印sql
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#showSql
logging:
level:
com.example.demo.mapper: debug
接下来我们进行一次查询:
可以看到一次查询中执行了两条sql,因为查询被pagehelper代理了, 第一条sql是获取满足条件的数据总条数,第二条是注入limit分页。