如何为企业制定一个有效的盐城地区网站建设方案?

摘要:网站建设盐城,企业网站建设方案策划,网站建设方案数,无锡市新吴区建设环保局网站在前几天的文章中,我们介绍了PageHelper的分页方法,研读代码定位到了ExecutorUtil.
网站建设盐城,企业网站建设方案策划,网站建设方案数,无锡市新吴区建设环保局网站在前几天的文章中#xff0c;我们介绍了PageHelper的分页方法#xff0c;研读代码定位到了ExecutorUtil.pageQuery(...)方法#xff0c;并阅读到了其中的部分代码。 今天我们将看到重要的SQL修改代码。 getPageSql 我们接着看代码#xff1a; if (!dialect.beforePage(…在前几天的文章中我们介绍了PageHelper的分页方法研读代码定位到了ExecutorUtil.pageQuery(...)方法并阅读到了其中的部分代码。 今天我们将看到重要的SQL修改代码。 getPageSql 我们接着看代码 if (!dialect.beforePage(ms, parameter, rowBounds)) {return executor.query(ms, parameter, RowBounds.DEFAULT, resultHandler, cacheKey, boundSql); } else {parameter dialect.processParameterObject(ms, parameter, boundSql, cacheKey);String pageSql dialect.getPageSql(ms, boundSql, parameter, rowBounds, cacheKey);// 其他代码 ... } 今天应该阅读dialect.getPageSql方法了。通过前面的文章我们已经知道dialect对应的实现是MysqlDialect那么getPageSql在MySql中的具体实现是什么样的呢 public class MySqlDialect extends AbstractHelperDialect {public String getPageSql(String sql, Page page, CacheKey pageKey) {StringBuilder sqlBuilder new StringBuilder(sql.length() 14);sqlBuilder.append(sql);if (page.getStartRow() 0L) {sqlBuilder.append(\n LIMIT ? );} else {sqlBuilder.append(\n LIMIT ?, ? );}return sqlBuilder.toString();} } 经过不懈的查找我们终于看到了对SQL语句的直接修改了。(^▽^)。 这里的写法也很值得学习首先是使用StringBuilder加速字符串拼接速度其次是在拼接前首先开辟充足的空间new StringBulder(sql.length() 14)以免在StringBuilder拼接过程中再次分配空间浪费时间。 然后我们就看到了SQL拼接啦 首先判断是否是第一页如果是第一页则拼接\n LIMIT ?不是第一页则拼接\n LIMIT ?, ?。 至此我们终于看到了SQL修改的真容。 为表庆祝已经确定我们查看的就是代码执行位置今天我们换种形式借助IDEA来逐步查看Java代码的执行情况。 以若依系统中的中某个页面如“系统监控-定时任务”存在分页我们以此为例。 页面加载完成后是下面的样子 我们首先在PageInterceptor拦截器入口处打一个断点。 并成功拦截。 然后我们在MysqlDialect修改方法出打一个断点并再次成功拦截开心 题外话 我公司目前使用的另一套开源架构jfinal其中的分页方式也蛮方便的但是和PageHelper没什么关系这里多说几句吧。
阅读全文