hibernate查询方式

private static SessionFactory sf;
    static {
        // 加载主配置文件, 并创建Session的工厂
        sf = new Configuration().configure().addClass(Employee.class).buildSessionFactory();
    }

/*
     * HQL查询:
     *  HQL查询与SQL查询区别
     *      SQL:查询表以及字段,不区分大小写
     *      HQL:hibernate Query language 即hiberna提供的面向对象的查询语言
     *          查询的是对象以及对象的属性,区分大小写
     * */
    @Test
    public void testHQL() throws Exception{


        Session session = sf.openSession();
        Transaction tx = session.beginTransaction();

        //主键查询
        Employee employee = (Employee) session.get(Employee.class, 1);

        //HQL查询,查询全部
        Query query = session.createQuery("from Employee where empId=1 or empId=2");
        List<Employee> list = query.list();

        tx.commit();
        session.close();
        sf.close();
    }

    /*
     * QBC查询    query by criteria 完全面向对象的查询
     * */
    @Test
    public void testQBC() throws Exception{
        Session session = sf.openSession();
        Transaction tx = session.beginTransaction();

        Criteria criteria = session.createCriteria(Employee.class);
        //条件
        criteria.add(Restrictions.eq("empId", 1));
        List<Employee> list = criteria.list();
        System.out.println("testQBC():"+list);


        //查询全部
        criteria.list();

        tx.commit();
        session.close();
        sf.close();
    }

/*
SQL: (结构化查询语句)查询的是表以及字段;  不区分大小写。
*/
    @Test
    public void testSQL() throws Exception{
        Session session = sf.openSession();
        Transaction tx = session.beginTransaction();

        //把每一行记录封装为对象数据数组,在添加到list集合
        //SQLQuery sqlQuery = session.createSQLQuery("select * from employee");
        //把每一行记录封装为1指定的对象类型
        SQLQuery sqlQuery = session.createSQLQuery("select * from employee").addEntity(Employee.class);
        List list = sqlQuery.list();
        System.out.println("testSQL():"+list);

        tx.commit();
        session.close();
        sf.close();
    }

猜你喜欢

转载自blog.csdn.net/qq_38341596/article/details/80651670