Query对象
Criteria对象
SQLQuery对象
(一)Query对象:使用Query对象不需要写sql语句,但需要写hql语句
(1)hql:hibernate query language,hibernate提供查询语言,与普通sql语句相似,他们的区别是,sql语句操作数据库表和字段,hql操作实体类和属性
查询所有的hql语句:from 实体类名称
//创建Query对象,方法里写hql语句
Query query = session.createQuery("from User");
//调用query里的方法得到结果
List<User> list = query.list();
for(User user:list){
System.out.println(user);
}
(二)Criteria对象:使用该对象查询操作,不需要写hql语句,直接调用方法实现
//创建Criteria对象
Criteria criteria = session.createCriteria(User.class);
//查询所有
List<User> list = criteria.list();
(三)SQLQuery对象:使用hibernate时,调用底层sql实现
//创建对象,参数为普通sql语句
SQLQuery sqlQuery = session.cresteSQLQuery("select * from t_user");
sqlQuery.addEntity(User.class);
Liser<User> list = sqlQuery.list();