【Hibernate】检索方式

时间:2019-11-27 00:35:31   收藏:0   阅读:103

一、概述

二、HQL

2.1 简介

2.2 查询所有记录

List<Customer> list = session.createQuery("from Customer").list();
for (Customer customer : list) {
    System.out.println(customer);
}

2.3 查询使用别名

// 使用别名
// 别名as可以省略
/*  List<Customer> list =
  session.createQuery("from Customer  c").list();
  System.out.println(list);*/
 
    
// 使用别名:带参数
/*List<Customer> list = session
        .createQuery("from Customer as c where c.cname = ?")
        .setString(0, "小沈").list();
System.out.println(list);*/
    
// 不支持 select * from Customer写法.可以写成 select 别名 from Customer as 别名;
List<Customer> list = session.createQuery("select c from Customer c").list();
System.out.println(list);

2.4 排序

List<Customer> list = session.createQuery(
        "from Customer c order by c.id desc").list();
for (Customer customer : list) {
    System.out.println(customer);
}

2.5 分页查询

Query query = session.createQuery("from Order");
query.setFirstResult(20);
query.setMaxResults(10);
List<Order> list = query.list();
for (Order order : list) {
    System.out.println(order);
}  

2.6 单个对象查询

Customer customer = (Customer) session
        .createQuery("from Customer where cname = ?")
        .setString(0, "小明").uniqueResult();
System.out.println(customer);

2.7 参数绑定

// 1.使用?号方式绑定
/*Query query = session.createQuery("from Customer where cname = ?");
query.setString(0, "小沈");
List<Customer> list = query.list();
System.out.println(list);*/
    
/*Query query = session.createQuery("from Customer where cname = ? and cid =?");
query.setString(0, "小沈");
query.setInteger(1,3);
List<Customer> list = query.list();
System.out.println(list);*/
    
// 2.使用名称的方式绑定
Query query = session.createQuery("from Customer 
         where cname=:name and cid=:id");
query.setString("name", "小沈");
query.setInteger("id", 3);
List<Customer> list = query.list();
System.out.println(list);
    
// 3.绑定实体
List<Order> list = session
    .createQuery("from Order o where o.customer = ?")
    .setEntity(0, customer).list();
for (Order order : list) {
    System.out.println(order);
}

2.8 投影操作

// 查询客户的名称:
 List<Object> list = session.createQuery(
         "select c.cname from Customer c").list(); System.out.println(list);
 
  
 List<Object[]> list = session.createQuery(
        "select c.cid,c.cname from Customer c").list(); 
for (Object[] objects : list){ 
    System.out.println(Arrays.toString(objects)); 
}
 
    
List<Customer> list = session.createQuery(
        "select new Customer(cname) from Customer").list();
System.out.println(list);

2.9 模糊查询

Query query = session.createQuery("
            from Customer where cname like ?");
query.setParameter(0, "小%");
List<Customer> list = query.list();
System.out.println(list);

2.10 SQL多表查询

2.11 HQL多表的查询

三、QBC

3.1 简介

3.2 查询所有记录

List<Customer> list =session.createCriteria(Customer.class).list();
for (Customer customer : list) {
    System.out.println(customer);
}

3.3 排序

List<Customer> list = session.createCriteria(Customer.class)
        .addOrder(org.hibernate.criterion.Order.desc("id")).list();
for (Customer customer : list) {
    System.out.println(customer);
}

3.4分页

Criteria criteria = session.createCriteria(Order.class);
criteria.setFirstResult(10);
criteria.setMaxResults(10);
List<Order> list = criteria.list();
for (Order order : list) {
    System.out.println(order);
}

3.5获取单个对象

Customer customer = (Customer) session.createCriteria(Customer.class)
        .add(Restrictions.eq("cname", "小明")).uniqueResult();
System.out.println(customer);

3.6 带参数的查询

/*
  List<Customer> list = session.createCriteria(Customer.class)
     .add(Restrictions.eq("cname", "小明")).list();
  System.out.println(list);
 */
    
List<Customer> list = session.createCriteria(Customer.class)
        .add(Restrictions.eq("cname", "小明"))
        .add(Restrictions.eq("cid", 2)).list();
System.out.println(list);

3.7 模糊查询

Criteria criteria = session.createCriteria(Customer.class);
criteria.add(Restrictions.like("cname", "大%"));
List<Customer> list = criteria.list();
System.out.println(list);

四、SQL

4.1 简介

4.2 SQL语句查询所有记录

List<Object[]> list = session.createSQLQuery("select * from 
            customer").list();
for (Object[] objects : list) {
    System.out.println(Arrays.toString(objects));
}
    
List<Customer> list = session.createSQLQuery("select * from     
        customer").addEntity(Customer.class).list();
for (Customer customer : list) {
    System.out.println(customer);
}
            
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!