刚刚看了一篇关于IBM的pureQuery的介绍。
    结合工作中的实际情况。忽然发现,大部分的模块都会有查询功能。尽管很多项目都使用了hibernate,但是,查询结果页面上的数据一般都不会是单纯某个hibernate entity object所具备的,很多都是几张表的数据凑起来的。要是再加上分页要求的话,使用HQL查询似乎有困难。使用纯SQL,JDBC查询的话相对简单,但是,每个地方都会编写几乎雷同的代码。而这种情况出现多次的话,大家都会去COPY,PASTE。很快,各种小问题就跟着来了。
    所以,写一个实现如标题的小工具应该很有实用性。

public class SQLResults2POJOUtil {
    public SQLResults2POJOUtil (java.sql.Connection queryConnection) {
        ...
    }

    public List query(String sql, Object[] params, Class pojoClass) throws java.sql.SQLException {
        /* 第一步:执行SQL查询,得到结果集。
         * 第二步:将结果集中的每个column的name和pojoClass中的相关属性的set方法关联起来。
         * 第三步:遍历结果集的每个数据,设置到pojoClass的实例。
         * 最后:返回pojoClass集合。
         * 这里面有2个关键点,第一是column name和属性名称匹配时要忽略大小写,忽略下划线
         * 第二点是实际设置pojoClass实例的值时还要记得类型转换(常规转化就那么几种,可以考虑建立转化注册机制,方便实际使用中特殊类型转化的扩展需要)。
         */
    }

    public List query(String sql, Class pojoClass) throws java.sql.SQLException  {
        return (query(sql, null, pojoClass));
    }
}