hibernate 学习笔记四

高级查询

------------

Hibernate中的检索方式

1、导航对象图检索(通过已获取到的对象,来检索其相关联的对象,如:获取到customer后,通过customer.getOrders()获取Order对象)

2、OID检索(明确知道对象的OID时,借助get(),load()进行检索)

3、HQL检索(用QUERY操作HQL进行检索)

步骤:

a、创建Query对象,session.createQuery(hql)

b、动态绑定参数(位置标识法,名字标识法)

c、获取数据(list(),iterate(),uniqueResult())

4、QBC检索

通过QBC(QueryByCriteria)API进行检索

擅长动态查询

步骤:

a、创建Criteria对象,session.createCriteria()

b、设置查询条件、绑定参数(criteria.Expression())

c、load()、uniqueResult()获取数据

QBE检索(QueryByExample)

5、本地SQL检索

Stringsql="selectid,name,agefromhedong_studentwherename=?";

SQLQueryquery=session.createSQLQuery(sql);

query.addScalar("id",Hibernate.INTEGER);

query.addScalar("name",Hibernate.STRING);

query.addScalar("age",Hibernate.INTEGER);

query.setString(0,"briup1")

多态查询

查询本类,连同子类一起查出

投影查询

查询类对象的部分属性信息

selectid,name,fromStudent;

...

while(...){

(Object)it.next();

}

注意:在遍历集合、转换类型时,应该强转为Object[]

集合过滤

session.createFilter()

相关推荐