1. 使用范围:单表查询
2. 来源:Hibernate自创的无语句面向对象查询。
public class Demo {
@Test
public void function() {
//1.获得session
Sessionsession = HibernateUtils.openSession();
//2.打开事务
Transaction tx = session.beginTransaction();
//*********************************************
//3. 执行操作
创建criteria查询对象
Criteria criteria = session.createCriteria(Customer.class);
a 查询得到结果为多个,list拿到一个集合性质的结果
List
或
b 查询得到结果为单个,uniqueResult拿到一个
Object uniqueResult = criteria.uniqueResult();
//**********************************************
//4. 提交事务
tx.commit();
//5.关闭资源
session.close();
}
}
HQL语句中,不可能出现任何数据库相关的信息
> |
gt |
>= |
ge |
< |
lt |
<= |
le |
== |
eq |
!= |
ne |
in |
in |
between and |
between |
like |
like |
is not null |
isNotNull |
is null |
isNull |
or |
or |
and |
and |
public class Demo{
@Test
public void function() {
//1.获得session
Session session = HibernateUtils.openSession();
//2.打开事务
Transaction tx = session.beginTransaction();
//*********************************************
//3. 执行操作
1 创建criteria查询对象
Criteria criteria = session.createCriteria(Customer.class);
2 添加查询对象 ==》 查询cust_id为1的Customer对象
criteria.add(Restriction.eq(“cust_id”,1L));
3 执行查询获得结果
Customer c = (Customer)criteria.uniqueResult();
4 打印结果
System.out.println(c);
//**********************************************
//4. 提交事务
tx.commit();
//5.关闭资源
session.close();
}
}
public class Demo{
@Test
public void function() {
//1. 获得session
Session session = HibernateUtils.openSession();
//2. 打开事务
Transaction tx = session.beginTransaction();
//*********************************************
//3. 执行操作
1 创建criteria查询对象
Criteria criteria = session.createCriteria(Customer.class);
2 设置分页信息,相当于limit ?, ?
criteria.setFirstResult(0);
criteria.setMaxResults(3);
3 执行查询
List
//**********************************************
//4. 提交事务
tx.commit();
//5.关闭资源
session.close();
}
}
public class Demo {
@Test
public void function() {
//1.获得session
Session session = HibernateUtils.openSession();
//2.打开事务
Transaction tx = session.beginTransaction();
//*********************************************
//3. 执行操作
1 创建criteria查询对象
Criteria criteria = session.createCriteria(Customer.class);
2 设置查询的聚合函数 =》 总行数
criteria.setProjection(Projections.rowCount());
3 执行查询
Long count = (Long)criteria.uniqueResult();
System.out.println(count);
//**********************************************
//4. 提交事务
tx.commit();
//5.关闭资源
session.close();
}
}