如何使用hibernate实现记录的增、删、改和查功能

如何使用hibernate实现记录的增、删、改和查功能

ID:34460377

大小:56.17 KB

页数:10页

时间:2019-03-06

如何使用hibernate实现记录的增、删、改和查功能_第1页
如何使用hibernate实现记录的增、删、改和查功能_第2页
如何使用hibernate实现记录的增、删、改和查功能_第3页
如何使用hibernate实现记录的增、删、改和查功能_第4页
如何使用hibernate实现记录的增、删、改和查功能_第5页
资源描述:

《如何使用hibernate实现记录的增、删、改和查功能》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、如何使用Hibernate实现记录的增、删、改和查功能1查询      在Hibernate中使用查询时,一般使用Hql查询语句。HQL(HibernateQueryLanguage),即Hibernate的查询语言跟SQL非常相像。不过HQL与SQL的最根本的区别,就是它是面向对象的。使用HQL时需要注意以下几点:l        大小写敏感因为HQL是面向对象的,而对象类的名称和属性都是大小写敏感的,所以HQL是大小写敏感的。Eg.HQL语句:fromCatascatwherecat.id>1;

2、与fromCatascatwherecat.ID>1;是不一样的,这点与SQL不同。l        from子句Eg.fromCat,该句返回Cat对象实例,开发人员也可以给其加上别名,eg.fromCatascat,对于多表查询的情况,可参考如下:fromCatascat,Dogasdog其它方面都与SQL类似,在此不再赘述。接下来讲一个在Hibernate中查询的例子。1.1简单查询Listlist=session.createQuery("fromUserasuserorderbyuser.

3、loginName").list();1.2带单个参数的查询Listlist=session.find("fromUserasuserwhereuser.loginName=?",                                                        loginName,                                                        Hibernate.STRING);1.3多个参数的查询Eg1.此例采用“?”占

4、位符的方式Stringhql="fromUserasuserwhereuser.loginName=?anduser.orgId=?";Queryquery=session.createQuery(hql);query.setParameter(1,'amigo');query.setParameter(2,newLong(1));Listlist=query.list();Eg2.此例采用“:paramName”的方式Stringhql="fromUserasuserwhereuser.login

5、Name=:loginNameanduser.orgId=:orgId";Queryquery=session.createQuery(hql);query.setParameter('loginName','amigo');query.setParameter('orgId',newLong(1));Listlist=query.list();1.4查询数量intcount =(Integer)session.createQuery("selectcount(*)fromUser").unique

6、Result().intValue();1.5限制查询起始值和数量的查询这种一般是在记录需要分页的时候需要用到,例如,在如下的代码中,限制查询的开始记录的位置为50,最大查询条数为50。Stringhql="fromUserasuserorderbyuser.loginName";intfirstResult=50;intmaxResults=50;Queryquery=session.createQuery(hql);query=query.setFirstResult(firstResult);

7、query.setMaxResults(maxResults);1.6子查询在某些情况下,也需要用到子查询,例如在下面的例子中,User为用户对象,UserRole为用户与角色关联对象。如下HQL语句将没有分配角色的用户对象查找出来。Stringhql="fromUseruserwhereuser.loginName"+"notin(selectur.user.loginNamefromUserRoleur)";Listlist=(session.createQuery(hql)).list();1

8、.7原生SQL查询对于某些复杂的查询语句,需要调用某种特定的数据库的特定函数才能解决,Hibernate虽然不推荐使用原生SQL语句来查询,因为这将破坏数据库的易移植性,但是Hibernate中也提供了使用原生SQL进行查询的方法,只需要获得连接即可。Eg.在下面的例子中,用到了SqlServer数据库中的原生sql语句,如下所示:StringtimeUnit="13";Stringsql="selectcount(*)count,CONVERT(VARCHAR("+

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。