排序查询
1 hql排序语句写法
(1)from 实体类名称 order by 实体类属性名称 asc/desc
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");
//排序
@Test
public 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实现
2在hql中实现分页
(1)在hql操作中,在语句里面不能写limit,hibernate的Query对象封装两个方法实现分页操作
//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();
//分页
@Test
public 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 具体实现
//投影
@Test
public 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();
}
}