Hibernate查询方式 (HQL查询)

Hibernate查询方式

第一种

HQL

条件查询;建议使用字符串的占位符的方式

分页查询:setFirstResult 第几个开始setMaxResults查找几个

最大的特点是封装了sql 语句,在查找使用的是类名和类的属性名

1.基础查询

//基础查询
   @Test
    public void testFun(){
       Session session = HibernateUtil.getOpenSession();
       Transaction transaction = session.beginTransaction();
//Hql查询
       String hql = "from Student";
       Query query = session.createQuery(hql);

       List<Student>list = query.list();


       transaction.commit();
       System.out.println(list);
       session.close();
   }

2.条件查询 占位符

public void testFun1(){
       Session session = HibernateUtil.getOpenSession();
       Transaction transaction = session.beginTransaction();
     //hql 语法 中的查找用的是类名和类的属性名
       String hql = "from Student where name =?";
       Query query = session.createQuery(hql);
//hql的占位符是从零开始的
      query.setParameter(0,"傻强");
       List list = query.list();
       System.out.println(list);
       transaction.commit();
       session.close();
   }

3.条件查询 字符串 占位符

public void  testFun2(){
        Session session = HibernateUtil.getOpenSession();
        Transaction transaction = session.beginTransaction();

        String hql = "from Student where name = :name";
        Query query = session.createQuery(hql);

        query.setParameter("name","傻强");
        List<Student> list = query.list();
        System.out.println(list);


        transaction.commit();
        session.close();
    }

4.分页查询

public void testFun3(){
        Session session = HibernateUtil.getOpenSession();
        Transaction transaction = session.beginTransaction();

        String hql = "from Student";
        Query query = session.createQuery(hql);

        query.setFirstResult(0);//从第0开始,开始位置
        query.setMaxResults(2);//找的个数
        List<Student> list = query.list();
        System.out.println(list);
        transaction.commit();
        session.close();

    }

猜你喜欢

转载自blog.csdn.net/leizhenjiang/article/details/80763866