zoukankan      html  css  js  c++  java
  • Hibernate查询总结之对象导航查询

    Hibernate查询总结

      • OID—get
      • 对象属性导航查询
      • HQL
      • Criteria
      • 原生SQL

    –待补充–

    对象属性导航查询

    //对象导航查询代码
    @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<LinkMan> 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();
            }
        }
    

    附:HibernateUtils

    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    
    public class HibernateUtils {
    	private static SessionFactory sf;
    	
    	static{
    		//1 创建,调用空参构造
    		Configuration conf = new Configuration().configure();
    		//2 根据配置信息,创建 SessionFactory对象
    		 sf = conf.buildSessionFactory();
    	}
    	
    	//获得session => 获得全新session
    	public static Session openSession(){
    				
    				Session session = sf.openSession();//3 获得session
    				return session;
    	}
    	
    	//获得session => 获得与线程绑定的session
    	public static Session getCurrentSession(){
    		
    		Session session = sf.getCurrentSession();//3 获得session
    		return session;
    	}
    	
    	
    }
    
    
  • 相关阅读:
    Bit Manipulation
    218. The Skyline Problem
    Template : Two Pointers & Hash -> String process
    239. Sliding Window Maximum
    159. Longest Substring with At Most Two Distinct Characters
    3. Longest Substring Without Repeating Characters
    137. Single Number II
    142. Linked List Cycle II
    41. First Missing Positive
    260. Single Number III
  • 原文地址:https://www.cnblogs.com/onefine/p/10499393.html
Copyright © 2011-2022 走看看