Hibernate查询解决方案

王朝other·作者佚名  2007-01-01
宽屏版  字体: |||超大  

这两个星期以来,我把原来用struts开发的一个测试工具改用struts+hibernate来实现,首先从心情上来,整个开发过程中始终保持愉快和平和,“原来开发可以这样愉快?”,再一点就是开发效率上高效了许多。

现在sun又加入jdocentral.com开始着手JDO2.0,想想看等它出台以后将是一个怎样激动人心得场面,让我们拭目以待。

用Hibernate来操纵持久数据非常简单,在这里一些简单的查询我会一笔带过,本文着重说明在综合查询兼有分页的时候我的一些经验,如果网友觉得我的方案还有不足的地方,也请和我讨论,我的email:plateau_t@sina.com.

第一部分:Hibernate提供的查询接口或其方法(此部分不做深究,请参考hibernate手册)

1。根据ID查询

要用到Session接口的load方法。

load(Class theClass, Serializable id)

load(Class theClass, Serializable id, LockMode lockMode)

load(Object object, Serializable id)

2。HQL语句进行查询

2。1 利用Query接口,Query由Session里的createQuery()来产生一个查询

1)不带参数的查询(这类比较简单)

Query query=session.createQuery("select user from User as user");

2)带参数的查询

Query query=session.createQuery("select user from User as user where user.name=?");

query.setString(0,name)//假设name为传过来的参数

Query query=session.createQuery("select user from User as user where user.name=:name");

query.setString("name",name)//假设name为传过来的参数

(多个参数以此类推)

利用Session接口的find查询

find(String query)

find(String query, Object[] values, Type[] types)

find(String query, Object value, Type type) 均返回list

如:

List list=session.find("select user from Users as user where user.name=?",name,Hibernate.STRING)

List list=session.find("select user from Users as user where user.name=? and user.pw=?",new Object[]{name,pw},new Type[]{Hibernate.STRING,Hibernate.STRING})

{推荐使用Query的方法进行查询}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有