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);
}
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());

浙公网安备 33010602011771号