hibernate_day04_05_hql查询(排序查询)和06_hql查询(分页查询和投影查询)

来源:互联网 发布:linux删除不可读写文件 编辑:程序博客网 时间:2024/06/07 04:45
排序查询
1 hql排序语句写法
(1)from 实体类名称 order by 实体类属性名称 asc/desc

//Query query = session.createQuery("from Customer order by cid asc");//默认升序Query query = session.createQuery("from Customer order by cid desc");


 
//排序@Testpublic void testSelect4(){SessionFactory sessionFactory = null;Session session = null;Transaction tx = null;try{sessionFactory = HibernateUtils.getSessionFactory();session = sessionFactory.openSession();tx = session.beginTransaction();//1 创建query对象//Query query = session.createQuery("from Customer order by cid asc");//默认升序Query query = session.createQuery("from Customer order by cid desc");//2调用方法得到结果List<Customer> list = query.list();for (Customer customer : list) {System.out.println(customer.getCid()+":::"+customer.getCustName());}tx.commit();}catch(Exception e){tx.rollback();}finally{session.close();sessionFactory.close();}}


06_hql查询(分页查询和投影查询)

1 mysql实现分页

1)使用关键字 limit实现

 

2hql中实现分页

1)在hql操作中,在语句里面不能写limithibernateQuery对象封装两个方法实现分页操作



//1 创建query对象Query query = session.createQuery("from Customer");//2 设置分页数据//2.1 设置开始位置query.setFirstResult(3);//2.2 设置每页记录数query.setMaxResults(3);//3调用方法得到结果List<Customer> list = query.list();


//分页@Testpublic void testSelect5(){SessionFactory sessionFactory = null;Session session = null;Transaction tx = null;try{sessionFactory = HibernateUtils.getSessionFactory();session = sessionFactory.openSession();tx = session.beginTransaction();//1 创建query对象Query query = session.createQuery("from Customer");//2 设置分页数据//2.1 设置开始位置query.setFirstResult(3);//2.2 设置每页记录数query.setMaxResults(3);//3调用方法得到结果List<Customer> list = query.list();for (Customer customer : list) {System.out.println(customer.getCid()+":::"+customer.getCustName());}tx.commit();}catch(Exception e){tx.rollback();}finally{session.close();sessionFactory.close();}}


投影查询


1 投影查询:查询不是所有字段值,而是部分字段的值


2 投影查询hql语句写法:
(1)select 实体类属性名称1, 实体类属性名称2  from 实体类名称
(2)select 后面不能写 * ,不支持的


3 具体实现
 

//投影@Testpublic void testSelect6(){SessionFactory sessionFactory = null;Session session = null;Transaction tx = null;try{sessionFactory = HibernateUtils.getSessionFactory();session = sessionFactory.openSession();tx = session.beginTransaction();//1 创建query对象Query query = session.createQuery("select custName from Customer");//2调用方法得到结果List<Object> list = query.list();for (Object object : list) {System.out.println(object);}tx.commit();}catch(Exception e){tx.rollback();}finally{session.close();sessionFactory.close();}}



阅读全文
0 0