Hibernate框架的查询方式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011301372/article/details/82934165

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();
    }

猜你喜欢

转载自blog.csdn.net/u011301372/article/details/82934165