Query、Criteria、SQLQuery对象查询所有记录
·Query对象
1、使用query对象,不需要写sql语句,但是要写hql语句
(1)hql:Hibernate query language,hibernate提供查询语言,这个hql语句和普通sql语句很类似。
(2)hql和sql语句区别:
·使用sql操作表和表字段
·使用hql操作实体类和类属性
2、查询所有hql语句:
(1) from实体类的名称
//创建Query对象,在createQuery里写hql语句
Query query = session.createQuery("from User");
3、Query对象的使用
(1)通过Session.createQuery("from X")创建Qeury对象
(2)调用Query对象的方法得到结果
//创建Query对象,在createQuery里写hql语句
Query query = session.createQuery("from User");
List <User>ls = query.list();
·Criteria对象
1、使用Criteria对象进行查询操作,不需要写查询语句,直接调用方法实现
2、实现过程
(1)通过Session.createCriteria(X)创建Criteria对象
(2)调用Criteria对象方法,得到结果
//创建Query对象,在createQuery里写hql语句
Criteria criteria = session.createCriteria(User.class);
List <User>ls = criteria.list();
·SQLQuery对象
1、使用Hibernate也可以使用底层sql语句
2、实现过程
(1)创建SQLQuery对象
(2)调用SQLQuery对象的方法
//创建SQLQuery对象,在createQuery里写hql语句
SQLQuery sqlquery = session.createSQLQuery("selecT * from user_login_next");
//sqlquery.list()返回的List,默认里面的数据是以数组的形式存储
//List <Object[]>ls = sqlquery.list();
//当然,也可以使用sql.addEntity(x.class)把返回结果变成对象
sqlquery.addEntity(User.class);
List <User> ls = sqlquery.list();
// for(Object[] arr : ls)
// {
// for(int i = 0; i<arr.length;i++) {
// System.out.println(arr[i]);
// }
// System.out.println(Arrays.toString(arr));
// }
for(User user : ls)
{
System.out.println(user);
}
//创建Query对象,在createQuery里写hql语句Query query = session.createQuery("from User");List <User>ls = query.list();