今天做项目用到了Hibernate 原生态sql查询,特此记录下。
第一种:返回List<Object[]>类型
public Object sqlQueryList(String sql) throws Exception {
Session session = null;
try{
session = this.getCurrentSession();
SQLQuery query = session.createSQLQuery(sql);
return query.list();
}catch(Exception e){
throw e;
}finally{
if(session != null ){
session.close();
}
}
}
处理返回结果:
List<Object[]> list = (List<Object[]>) dao.sqlQueryList(sql);
for(Object[] o:list){
.......
}
第二种: 返回List<map>
public List<Map> sqlQueryMap(String sql) throws Exception {
Session session = null;
try{
session = this.getCurrentSession();
SQLQuery query = session.createSQLQuery(sql);
query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);//这里是关键
return query.list();
}catch(Exception e){
throw e;
}finally{
if(session != null ){
session.close();
}
}
}
处理返回结果:
List<Map> listmap= dao.sqlQueryMap(sql, new Object[]{});
for(int i=0; i<listmap.size(); i++){
Map<String,Object> map = listmap.get(i);
.......
}