升度

Hibernate 不用实体类 直接取值

默认用Qurey查出来的结果为Object[]格式,该方法可以把查询字段名作为key,是结果转为Map格式,方便根据对应key取值。

  1. Query query = getSession().createSQLQuery(sql);  
  2. List<Object[]> result = query.list();//默认查询出来的list里存放的是一个Object数组   
  3. for (Object[] objects : result) {   
  4.     String message_id = objects[0].toString();  
  5.     String app_id = objects[1].toString();  
  6.     System.out.println(message_id+","+app_id);  
  7. }  

查回来的值是Object,需要遍历才能取值。

  1. Query query = getSession().createSQLQuery(sql);  
  2.  query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); // 这样子返回Map  
  3. List result = query.list();  
  4. for (Object object : result) {  
  5.     Map obj = (Map) object;  
  6.     String message_id = obj.get("message_id").toString();  
  7.     String app_id = obj.get("app_id").toString();  
  8.     System.out.println(message_id+","+app_id);  
  9.  } 

这里返回Map,可以根据key取值,比较灵活,key值为查询字段的字段名



2021-06-04 10:46:29.0 SONG