Hibernate查詢所有數據的操作


Hibernate查詢所有數據的操作方式有三種。

  1、Query

    (1)使用該方法查詢時,不需要編寫sql語句,但是需要編寫hql(Hibernate Query Language)語句,該語句是Hibernate查詢語言。

    (2)hql語言操作的是實體類和實體類的屬性,比如查詢所有數據的hql語句為:from 實體類名稱。

    (3)使用方法:首先創建Query對象,然后調用該對象的List方法返回數據集合。

    

@Test
    public void test11(){
        SessionFactory sessionFactory = null;
        Session session = null;
        Transaction tx = null;
        try {    
            sessionFactory = HibernateUtils.getFactory();
            session = sessionFactory.getCurrentSession();
            tx = session.beginTransaction();
            /**
             * 使用session對象的createQuery方法創建Query對象。
             * 參數為hql語句
             * 使用QUERY對象的list方法獲取數據集合
             */
            Query query =session.createQuery("from UserEntity");
            List<UserEntity> list = query.list();
            //使用forEach遍歷集合
            for (UserEntity userEntity : list) {
                System.out.println(userEntity);
            }
            tx.commit();
        } catch (Exception e) {    
            tx.rollback();
        }finally{
            sessionFactory.close();
        }
    }

  2、criteria

    (1)使用該對象不需要寫hql語句,只需要指定實體類。

    (2)使用方法:首先創建criteria對象,然后調用list返回數據集合。

    

@Test
    public void test12(){
        SessionFactory sessionFactory = null;
        Session session = null;
        Transaction tx = null;
        try {    
            sessionFactory = HibernateUtils.getFactory();
            session = sessionFactory.getCurrentSession();
            tx = session.beginTransaction();
            /**
             * 使用session對象的createCriteria方法創建criteria對象。
             * 使用criteria對象的list方法獲取數據集合
             */
            Criteria criteria =session.createCriteria(UserEntity.class);
            List<UserEntity> list = criteria.list();
            //使用forEach遍歷集合
            for (UserEntity userEntity : list) {
                System.out.println(userEntity);
            }
            tx.commit();
        } catch (Exception e) {    
            tx.rollback();
        }finally{
            sessionFactory.close();
        }
    }

  3、SQLQuery

    (1)使用該對象,需要寫底層的SQL語句。

    (2)實現方法:首先創建該對象,然后調用list。

    

@Test
    public void test13(){
        SessionFactory sessionFactory = null;
        Session session = null;
        Transaction tx = null;
        try {    
            sessionFactory = HibernateUtils.getFactory();
            session = sessionFactory.getCurrentSession();
            tx = session.beginTransaction();
            /**
             * 使用session對象的createSQLQuery方法創建SQLQuery對象。
             * 使用qQLQuery對象的list方法獲取數據集合,集合里面不是對象,而是數組
             */
            SQLQuery qQLQuery =session.createSQLQuery("select * from t_user");
            List<Object[]> list = qQLQuery.list();
            //使用forEach遍歷集合
            for (Object[] objects : list) {
                System.out.println(Arrays.toString(objects));
            }
            tx.commit();
        } catch (Exception e) {    
            tx.rollback();
        }finally{
            sessionFactory.close();
        }
    }

    (3)數組轉換成對象

      

@Test
    public void test13(){
        SessionFactory sessionFactory = null;
        Session session = null;
        Transaction tx = null;
        try {    
            sessionFactory = HibernateUtils.getFactory();
            session = sessionFactory.getCurrentSession();
            tx = session.beginTransaction();
            /**
             * 使用session對象的createSQLQuery方法創建SQLQuery對象。
             * 使用qQLQuery對象的list方法獲取數據集合,集合里面不是對象,而是數組
             */
            SQLQuery qQLQuery =session.createSQLQuery("select * from t_user");
        //將數組裝載進實體中 qQLQuery.addEntity(UserEntity.
class); List<UserEntity > list = qQLQuery.list(); //使用forEach遍歷集合 for (UserEntity userEntity : list) { System.out.println(userEntity); } tx.commit(); } catch (Exception e) { tx.rollback(); }finally{ sessionFactory.close(); } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM