Query查询接口
具体的查询代码如下
查询所有记录
Query query = session.createQuery("from Customer");
List<Customer> list = query.list();
System.out.println(list);
条件查询
Query query = session.createQuery("from Customer where name=?");
query.setString(0,"李敏");
List<Customer> list = query.list();
System.out.println(list);
条件查询
Query query = session.createQuery("from Customer where name = : aaa and age = :bbb");
query.setString("aaa","李敏");
query.setInteger("bbb",38);
List<Customer> list = query.list();
System.out.println(list);
public class Demo4 {
//测试Query的查询接口
@Test
public void run1(){
Session session = HibernateUtils.getsSession();
Transaction tr = session.beginTransaction();
//查询的方式
Query query = session.createQuery("from User");
List<User> list = query.list();
for(User user :list){
System.out.println(user);
}
tr.commit();
session.close();
}
//添加查询的条件
@Test
public void run2(){
Session session = HibernateUtils.getsSession();
Transaction tr = session.beginTransaction();
//查询的方式,HQL(Hibernate独有的查询语言) from User where 属性条件
//SQL:select * from t_user where 字段条件
Query query = session.createQuery("from User where age > ?");
//设置?的值
query.setInteger(0,28);
//查询
List<User> list = query.list();
for(User user : list){
System.out.println(user);
}
tr.commit();
session.close();
}
//模糊查询
@Test
public void run3(){
Session session = HibernateUtils.getsSession();
Transaction tr = session.beginTransaction();
//查询的方式,HQL(Hibernate独有的查询语言) from User where 属性条件
//SQL:select * from t_user where 字段条件
Query query = session.createQuery("from User where name like ?");
//设置?的值,小标值从0开始
query.setString(0,"%小%");
//查询
List<User> list = query.list();
for(User user : list){
System.out.println(user);
}
tr.commit();
session.close();
}
@Test
public void run4(){
Session session = HibernateUtils.getsSession();
Transaction tr = session.beginTransaction();
//查询的方式,HQL(Hibernate独有的查询语言) from User where 属性条件
//SQL:select * from t_user where 字段条件
Query query = session.createQuery("from User where age > :aaa ");
//冒号,设置的值,如aaa
query.setInteger("aaa",18);
//查询
List<User> list = query.list();
for(User user : list){
System.out.println(user);
}
tr.commit();
session.close();
}
}
Criteria查询接口
完全面向对象,非常适合做条件查询
具体的查询代码如下
查询所有记录
Criteria criteria = session.createCriteria(Customer.class);
List<Customer> list = criteria.list();
System.out.println(list);
条件查询
Criteria criteria = session.createCriteria(Customer.class);
criteria.add(Restrictions.eq("name","李佳"));
List<Customer> list = criteria.list();
System.out.println(list);
条件查询
Criteria criteria = session.createCriteria(Customer.class);
criteria.add(Restrictions.eq("name","李佳"));
criteria.add(Restrictions.eq("age",28));
List<Customer> list = criteria.list();
System.out.println(list);
public void run5(){
Session session = HibernateUtils.getsSession();
Transaction tr = session.beginTransaction();
//先获取Criteria接口
Criteria criteria = session.createCriteria(User.class);
//没有添加条件,查询所有的数据
List<User> list = criteria.list();
System.out.println(list);
tr.commit();
session.close();
}
//按条件查询
@Test
public void run6(){
Session session = HibernateUtils.getsSession();
Transaction tr = session.beginTransaction();
//先获取Criteria接口
Criteria criteria = session.createCriteria(User.class);
//添加查询条件
//select * from t_user where age > 18;
//Criterion 是Hibernate 提供的条件查询的对象,想传入条件的使用的工具类Restrivtions
//Restrictions提供的静态的方法,拼接查询的条件
criteria.add(Restrictions.gt("age",18));
//继续添加条件
criteria.add(Restrictions.like("name","%小%"));
//没有添加条件,查询所有的数据
List<User> list = criteria.list();
System.out.println(list);
tr.commit();
session.close();
}