• Hibernate的api使用


    Query对象

      1 使用query对象,不需要写sql语句,但是写hql语句

        (1)hql:hibernate query language,hibernate提供查询语言,这个hql语句和普通sql语句很相似

        (2)hql和sql语句区别:

          - 使用sql操作表和表字段

          - 使用hql操作实体类和属性

      2 查询所有hql语句:

        (1)from 实体类名称

      3 Query对象使用

        (1)创建Query对象

        (2)调用query对象里面的方法得到结果

        @Test
        void testQuery() throws Exception {
            SessionFactory sessionFactory = null;
            Session session = null;
            Transaction tx = null;
            try {
                sessionFactory = HibernateUtils.getSessionFactory();
                session= HibernateUtils.openSession();
                tx = session.beginTransaction();
                
                Query qy = session.createQuery("from User");
                List<User> ls = qy.list();
                for(User user:ls)
                {
                    System.out.println(user);
                }
                
                tx.commit();
                
            } catch (Exception e) {
                
                e.printStackTrace();
                tx.rollback();
                
            } finally {
                
                session.close();
                sessionFactory.close();
            }
        }

     

     

    Criteria对象

      1 使用这个对象查询操作,但是使用这个对象时候,不需要写语句,直接调用方法实现

      2 实现过程

      (1)创建criteria对象

      (2)调用对象里面的方法得到结果

        @Test
        void testCriteria() throws Exception {
            SessionFactory sessionFactory = null;
            Session session = null;
            Transaction tx = null;
            try {
                sessionFactory = HibernateUtils.getSessionFactory();
                session= HibernateUtils.openSession();
                tx = session.beginTransaction();
                
                Criteria criteria = session.createCriteria(User.class);
                List<User> ls = criteria.list();
                for(User user:ls)
                {
                    System.out.println(user);
                }
                
                tx.commit();
                
            } catch (Exception e) {
                
                e.printStackTrace();
                tx.rollback();
                
            } finally {
                
                session.close();
                sessionFactory.close();
            }
        }

    SQLQuery对象

      1 使用hibernate时候,调用底层sql实现

      2 实现过程

        (1)创建对象

        (2)调用对象的方法得到结果

                SQLQuery sql = session.createSQLQuery("select * from t_user");
                List<Object[]> ls = sql.list();
                
                for(Object[] object:ls)
                {
                    System.out.println(Arrays.toString(object));
                }

          返回list集合每部分是数组

          返回list中每部分是对象形式

                SQLQuery sql = session.createSQLQuery("select * from t_user");
                
                sql.addEntity(User.class);
                
                List<User> ls = sql.list();
                
                for(User object:ls)
                {
                    System.out.println(object);
                }
                
                tx.commit();
  • 相关阅读:
    DataTables: Cannot read property 'length' of undefined
    ssis SQL Server Integration Services
    科技爱好者周刊(第 209 期):程序员是怎样的人
    How do I remove the first characters of a specific column in a table?
    Define your Classic pipeline
    How does comparison operator works with null int?
    How to set Google Chrome custom proxy server settings independently from Internet Explorer proxy settings
    GetUniqueNodeName
    RK3399Pro 音频配置
    查看USB设备
  • 原文地址:https://www.cnblogs.com/kpsmile/p/10050512.html
Copyright © 2020-2023  润新知