WEB开发网
开发学院软件开发Java 简述Hibernate在HQL中查询实例 阅读

简述Hibernate在HQL中查询实例

 2009-09-26 00:00:00 来源:WEB开发网   
核心提示: 这个跟2中的相似,只是多了参数可以归为一类,简述Hibernate在HQL中查询实例(2),4、支持多参数传递例子:Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.idin(:myids)&qu

这个跟2中的相似,只是多了参数可以归为一类。

4、支持多参数传递

例子:

List students = session.createQuery("select s.id, s.name from Student s where s.id in(:myids)")  
            .setParameterList("myids", new Object[]{1, 2, 3, 4, 5,32,13,14})  
                .list();  
            for (Iterator iter=students.iterator(); iter.hasNext();) {  
                Object[] o = (Object[])iter.next();  
                System.out.println(o[0]+","+o[1]);  
            } 

注意调用方法是setParameterList。

5、调用数据库里面的函数

例子:

List students = session.createQuery("select s.id, s.name from Student s where date_format(s.createTime, '%Y-%m')=?")  
           .setParameter(0, "2008-10")  
                .list();  
           for (Iterator iter=students.iterator(); iter.hasNext();) {  
                Object[] o = (Object[])iter.next();  
               System.out.println(o[0]+","+o[1]);  
           } 

数据库函数date_format。

6、直接支持sql查询

例子:

List students = session.createSQLQuery("select *from t_student").list();  
            for (Iterator iter=students.iterator(); iter.hasNext();) {  
               Object[] o = (Object[])iter.next();  
                System.out.println(o[0]+","+o[1]);  
           } 

只需要调用session里面的createSQLQuery方法即可。

7、进行导航查询

例子:

List students = session.createQuery("select s.name from Student s where s.classes.name like '%1%'").list();  
            for (Iterator iter=students.iterator(); iter.hasNext();) {  
               String s = (String)iter.next();  
                System.out.println(s);  
            } 

这种查询很方便。

8、分页查询

例子:

List students = session.createQuery("from Student").setFirstResult(0).setMaxResults(3).list();  
            for (Iterator iter=students.iterator(); iter.hasNext();) {  
                Student student = (Student)iter.next();  
                System.out.println(student.getName());  
            } 

这是很简单的分页查询,分页查询实现比这个复杂多了,分页查询采用的相当于数据库里面的 limit ,来限制一次查询显示的条数。

注:还有一些其他就不一一列举了,Hibernate查询在Hibernate的使用中HQL查询语言如果用得好,会给工作带来比较高的效率,比较重要,而且还有一个查询效率的问题,这涉及到缓存等方面,以后会更新这方面的文章。

上一页  1 2 

Tags:

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接