Hibernate的OID和对象导航查询

OID查询

    @Test
    public void testSelectOID(){
        Session session = null;
        Transaction transaction = null;
        try {
            //1.使用SessionFactory创建Session对象
            //理解:类似于jdbc的连接数据库
            session = HibernateUtils.getSessionObject();
            //2.开启事务
            transaction = session.beginTransaction();
            //3.写具体的crud操作
            //查询cid=3的客户
            Customer customer = session.get(Customer.class, 3);
            //4.提交事务
            transaction.commit();
        } catch (Exception e) {
            e.printStackTrace();
            //5.回滚事务
            transaction.rollback();
        } finally {
            //6.关闭资源     在使用了与本地线程绑定的session对象之后,就不需要手动关闭session了
            session.close();
        }
    }

对象导航查询

    @Test
    public void testSelectObject(){
        Session session = null;
        Transaction transaction = null;
        try {
            //1.使用SessionFactory创建Session对象
            //理解:类似于jdbc的连接数据库
            session = HibernateUtils.getSessionObject();
            //2.开启事务
            transaction = session.beginTransaction();
            //3.写具体的crud操作
            //查询cid=3的客户,在查询他的所有联系人
            //01.查询cid=3的客户
            Customer customer = session.get(Customer.class, 3);
            //02.再查询cid=3的客户的所有联系人
            //通过客户的联系人属性获取其所有的联系人
            Set linkMans = customer.getSetLinkMan();
            for (LinkMan linkMan : linkMans) {
                System.out.println(linkMan);
            }
            //4.提交事务
            transaction.commit();
        } catch (Exception e) {
            e.printStackTrace();
            //5.回滚事务
            transaction.rollback();
        } finally {
            //6.关闭资源     在使用了与本地线程绑定的session对象之后,就不需要手动关闭session了
            session.close();
        }
    }

你可能感兴趣的:(hibernate)