Hibernate——查询

来源:互联网 发布:星际争霸剧情知乎 编辑:程序博客网 时间:2024/06/17 08:52
package com.zking.test;import java.util.List;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.zking.entity.Person;public class TestHQL {private SessionFactory sessionFactory;private Session session;private Transaction transaction;@Beforepublic void before(){Configuration configuration=new Configuration().configure();sessionFactory = configuration.buildSessionFactory();session = sessionFactory.openSession();transaction = session.beginTransaction();}@Afterpublic void after(){transaction.commit();session.close();sessionFactory.close();}@Testpublic void testhql(){查询所有List<Person> persons=session.createQuery("from 表名").list();查询某一列List<String> names=session.createQuery("select 列名 from 表名").list();查询某几列    查询结果来源于多张表List<Object[]> objects=session.createQuery("select 列名1,列名2 from 表名").list();构造查询List<Person> persons=session.createQuery("select new 表名(列名1,列名2) from 表名").list();带条件查询查询年龄在15 到 60 之间                方法一:               List<Person> persons=session.createQuery("from Person where page between ? and ?").setInteger(0, 15).setInteger(1, 60).list();                方法二:               List<Person> persons=session.createQuery("from Person where page between :min and :max").setInteger("min", 15).setInteger("max", 60).list();聚合函数                查询最大年龄               int page=Integer.parseInt(session.createQuery("select max(page) from Person").uniqueResult().toString());分页int pageNo=2;//页数int pageSize=2;//每页条数List<Person> persons=session.createQuery("from Person").setFirstResult((pageNo-1)*pageSize).setMaxResults(pageSize).list();排序年龄降序,从大到小List<Person> persons=session.createQuery("from Person order by page desc").list();对象导航session.createQuery("from Person p where p.city.caddress 条件 ");}}