• 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(); } }
  • 相关阅读:
    元宇宙的特点
    Meta Network
    Decentraland
    Cryptovoxel
    The Sandbox Game
    Roblox
    JAVA参数传递
    静态方法使用@Autowired注入写法
    mysql索引
    Java中锁的分类
  • 原文地址:https://www.cnblogs.com/jack1995/p/6937800.html
Copyright © 2020-2023  润新知