牧者

大风起兮云飞扬

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

Hibernate 常用sql查询方法

1、返回对象方式

String sqlString = "select * from user";
//以SQL语句创建SQLQuery对象
List l = session.createSQLQuery(sqlString)
//将查询ss实体关联的User类
.addEntity("ss",User.class)
//返回全部的记录集
.list();
//遍历结果集
Iterator it = l.iterator();
while (it.hasNext()){
//因为将查询结果与Student类关联,因此返回的是Student集合
User s = (User)it.next();
String a = s.getName(); 
System.out.println(a);
}

 

2、返回Object[]的遍历

  String sql="select * from user";  
  List list=(SQLQuery) session.createSQLQuery(sql);  
  s.addScalar("id",Hibernate.INTEGER); //列名, 数据类型
  s.addScalar("name",Hibernate.STRING).list();    
  Object[] objects=(Object[])list.get(0); 
  System.out.println(objects[0]);
  System.out.println(objects[1]);

3、返回Map的遍历  

  String sql="select * from user";  
  SQLQuery ss=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);  
  ss.addScalar("id",Hibernate.INTEGER);
  ss.addScalar("name",Hibernate.STRING);  
  List list2=ss.list();  
  Map map = (Map) list2.get(0);  
  System.out.println(map.get("name"));
  System.out.println(map.get("id"));

4、返回List的遍历  

  String sql="select * from user";  
  SQLQuery s3=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.TO_LIST);  
  s3.addScalar("id",Hibernate.INTEGER);
  s3.addScalar("name",Hibernate.STRING);  
  List list3=s3.list(); 
  List list4=(List)list3.get(0); 
  System.out.println(list4.get(0));
  System.out.println(list4.get(1));

 4、返回自定义的bean

 String sql="select * from user";  
  SQLQuery e=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(SqlQueryBean.class));  
  e.addScalar("id",Hibernate.INTEGER);
  e.addScalar("name",Hibernate.STRING);  
  List r=e.list(); 
  SqlQueryBean sqb=(SqlQueryBean)r.get(0); 
  System.out.println(sqb.getId());
  System.out.println(sqb.getName());

  

 

  

posted on 2017-02-16 13:15  牧者.D  阅读(181)  评论(0)    收藏  举报