- /**
- *
- * Discription : 将查询出来的数据转换为Map集合,但前提是只能为一条数据 ,它的key为其查询的字段.
- * @param sql
- * @return
- * Map<String,Object>
- * @date 2013-9-29 下午1:20:50
- * @throws
- * @author : shendx
- */
- @Override
- public Map<String, Object> getQueryResultToMap(final String sql) {
- return (Map<String, Object>) getHibernateTemplate().execute(new HibernateCallback() {
- @Override
- public Object doInHibernate(Session session) throws HibernateException,
- SQLException {
- Query query = session.createSQLQuery(sql);
- return (Map)query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).uniqueResult(); //返回值为map集合 且为唯一值(只能返回一条数据)
- }
- });
- }
- /**
- *
- * Discription : 将sql中的全部数据查出来,返回值为一个List<Map<String, Object>>具体用法见
- * @see #getQueryResultToMap(String)
- * @param sql
- * @return
- * List<Map<String,Object>>
- * @date 2013-9-29 下午1:23:20
- * @throws
- * @author : shendx
- */
- @Override
- public List<Map<String, Object>> getQueryResultToListMap(final String sql) {
- return (List<Map<String, Object>>) getHibernateTemplate().execute(new HibernateCallback() {
- @Override
- public Object doInHibernate(Session session) throws HibernateException,
- SQLException {
- Query query = session.createSQLQuery(sql);
- return (List)query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
- }
- });
- }
函数 getQueryResultToMap 只能查询一条数据,否则会报错
例如:
select t.id,t.name from tableName t; 那么它在map中的key为id 和name。
当然也可以 select * from tableName;
另外值得注意的是,经过我本地测试如果取别名是报错