Welcome

首页 / 网页编程 / JSP / 使用JSP实现简易的SQL报表

使用JSP实现简易的SQL报表2011-10-12刘长炯这个内容也是根据企业学员的要求准备的. 其实这个小项目是刚毕业时候做的, 很多时候我们希望执 行下面的SQL/HQL然后得到一个HTML表格输出:

输入: select ID as 编号, NAME as 姓名, AGE as 年龄 from XXX

输出:

编号姓名年龄
要求是如果SQL变动, 仍然要显示出来所有的别名字段信息和数据.

因为现在Hibernate用的比较广泛, 所以优先考虑用Hibernate来实现, 结果发现如果是实体映射查询 语句, 可以方便的用:List Query.getReturnAliases() 获得别名, 然而我们知道查询时有时候语句是很 复杂的, 不全是HQL, 这时候用SQLQuery的时候, 惊讶的提示这个方法尚未实现(最新版的Hibernate 3.3 是否实现尚未测试), 用的版本是Hibernate 3.2, 对应的代码是:

DAO

/**
* 根据查询语句返回结果, 并包含结果的列名
* @param hql
* @param args
* @return
*/
public List queryAllForReport( final String hql, final Object... args) {
List list = getHibernateTemplate().executeFind (new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);

for(int i =0; i < args.length; i++) {
query.setParameter(i, args[i]);
}


List list = query.list();
list.add(0, query.getReturnAliases());

return list;
}
});

// Hibernate做count计算返回一般都是对象

return list;
}