mysql SQL_CALC_FOUND_ROWS 特性: 一条 sql 语句同时查出总数及分页结果

介绍了如何通过利用 mysql SQL_CALC_FOUND_ROWS 特性, 在一条 sql 语句里同时查出总数及分页结果

展示分页列表是一个常见的开发需求, 需要查询出总数及分页数据.

传统分页查询做法

传统上, 这个一般是通过两条 sql 去实现. 先是查询总数, 比如这样:

select count(*) from programmer where age >= 35;

然后再查分页结果:

select * from programmer where age >= 35 limit 0, 10;

如果是简单的查询还好, 但对于一些复杂的涉及很多条件的查询, 往往需要重复那些条件.

注: 在 mybatis 中, 你可以把公共的条件抽取出来做成一个可复用模块, 不过这样一来结构就相对复杂了, 也不是那么直观.

那么, 是否有方式可以避免上述麻烦, 一条语句就可以查出总数及分页结果呢? 那就要用到 mysql 里的 SQL_CALC_FOUND_ROWS 特性了.

继续阅读

利用 IDEA IDE 的轻量编辑模式快速查看和编辑工程外的文本文件

介绍了 Intellij IDEA 的轻量编辑模式, 可以用其取代诸如记事本或 Notepad++ 之类的轻量级编辑器.

作为程序员, 我们都知道 IDE 的很好用的, 它的文本编辑器功能也非常的强大, 用起来非常便捷. 在长年累月的使用中, 我们也变得对其非常熟悉, 以致于使用起其它简单地轻量级的文本编辑器来, 比如什么记事本, Notepad++, UltraEdit 等等呀, 觉得既不方便又不熟悉.

关键是很多的操作习惯或者快捷键之类的也不尽相同, 比如什么导航定位呀, 查找替换呀, 等等往往都是各有各的一套.

但有时我们又不得不用这些轻量级的编辑器, 因为有时我们仅仅是想简单查看一下一些文本文件的内容, IDE 的功能虽然强大, 但常常也是要你打开整个工程, 或者说对于工程以外的文本文件的查看或编辑就不支持了.

这种情况随着 Intellij IDEA 新版本的发布, 已经有所改变了, 这就是一个新的特性, 所谓的轻量编辑模式(lightEdit mode), 有了它, 基本可以告别其它的轻量级文本编辑器, 而全程使用 IDE 的编辑器了.

继续阅读

使用 .editorconfig 文件来统一编程风格

介绍了 .editorconfig 文件及如何使用它来统一项目的编程风格, 兼谈了一些项目管理的心得.

做过长期开发的程序员都知道保持编程风格统一的重要性, 统一的风格能够降低各种成本.

有一句名言是咋说的来着? 代码主要是给人看的, 其次才是给电脑去运行.

但另一方面, 大家又普遍是偷懒的, 对于这些长期会受益, 但短期收益不明显甚至带来麻烦的事, 许多团队中的成员不能说抵制吧, 但至少是积极性不高的.

此时, 假如你是一个团队的领导者, 怎么才能有效地保持项目中编程风格的统一呢? 下面介绍的这个 .editorconfig 文件的方式将能有效地帮助我们.

继续阅读

引入 lombok 简化代码及相关 IDE 设置

简要介绍了 lombok 的特性, 以及如何在 maven 引入和 IDE 中的设置(包括Eclipse 及 Intellij IDEA)

使用 lombok 可以简化一些样板代码的编写, 下面说说如何启用它, 包括了 maven 及 IDE 中的设置(Eclipse 及 Intellij IDEA)

具体例子

开发中经常会遇到一些纯粹作为记录的类, 如 VO, DTO 之类的, 在以往, 需要给它们一一生成所谓的 getter 和 setter. 虽然有 IDE 可以辅助快速生成这样方法, 可大量的这种简单的 get 和 set 方法的存在也是挺碍眼的, 可否简化呢?

答案是可以的, 方式就是借助 lombok 这个代理工具.

继续阅读

在开发者工具中查看响应头的字符集编码信息

介绍了如何在浏览器的开发者工具中查看响应头(Response Headers)下的 Content-type 中的字符集编码信息

要想查看某个文档的响应头中的字符集编码信息, 以 Chrome 浏览器为例, 首先打开"开发者工具":

可以按快捷键 F12, 或单击窗口右上角的选项按钮, 然后选择 "更多工具--开发者工具"即可打开"开发者工具"窗口.

如下图打开 我的网站 为例所示:

开发者工具

缺省情况下显示在原窗口下面, 可以选择最右边三个竖点的按钮, 然后在 dock side 中选择不同的显示位置.

继续阅读