zoukankan      html  css  js  c++  java
  • hibernate框架学习之多表查询helloworld

    package cn.itcast.h3.hql;
    
    import java.util.List;
    
    import org.hibernate.Query;
    import org.hibernate.Session;
    
    import cn.itcast.h3.hql.vo.StudentModel;
    import cn.itcast.h3.hql.vo.TeacherModel;
    import cn.itcast.h3.util.HibernateUtil;
    
    //多表查询
    public class MulHQLApp {
        //内连接
        void testMulInner(){
            Session s = HibernateUtil.getSession();
            
            Query q = s.createQuery("from TeacherModel tm inner join tm.students s");
            List<Object[]> queryList  = q.list();
            System.out.println(queryList.size());
            for(Object[] objs:queryList){
                for(Object obj:objs){
                    System.out.print(obj+"	");
                }
                System.out.println();
            }
            s.close();
        }
        //迫切内连接
        void testMulInner2(){
            Session s = HibernateUtil.getSession();
            
            Query q = s.createQuery("select DISTINCT  tm from TeacherModel tm inner join fetch tm.students s");
            List<Object> queryList  = q.list();
            System.out.println(queryList.size());
            for(Object obj:queryList){
                System.out.println(obj);
            }
            s.close();
        }
        //隐式内连接
        void testMulInner3(){
            Session s = HibernateUtil.getSession();
            
            Query q = s.createQuery("from TeacherModel");
            List<Object> queryList  = q.list();
            System.out.println(queryList.size());
            for(Object obj:queryList){
                System.out.println(obj);
            }
            s.close();
        }
        //左外连接
        void testMulOuter1(){
            Session s = HibernateUtil.getSession();
            
            Query q = s.createQuery("from TeacherModel tm left outer join tm.students s");
            List<Object[]> queryList  = q.list();
            System.out.println(queryList.size());
            for(Object[] objs:queryList){
                for(Object obj:objs){
                    System.out.print(obj+"	");
                }
                System.out.println();
            }
            s.close();
        }
        //迫切左外连接
        void testMulOuter2(){
            Session s = HibernateUtil.getSession();
            
            Query q = s.createQuery("from TeacherModel tm left outer join fetch tm.students s");
            List<Object> queryList  = q.list();
            System.out.println(queryList.size());
            for(Object obj:queryList){
                System.out.println(obj);
            }
            s.close();
        }
        //右外连接
        void testMulOuter3(){
            Session s = HibernateUtil.getSession();
            
            Query q = s.createQuery("from TeacherModel tm right outer join tm.students s");
            List<Object[]> queryList  = q.list();
            for(Object[] objs:queryList){
                for(Object obj:objs){
                    System.out.print(obj+"	");
                }
                System.out.println();
            }
            s.close();
        }
        void fn(){
            Session s = HibernateUtil.getSession();
            
            Query q = s.createQuery("from TeacherModel");
            List<TeacherModel> queryList  = q.list();
    //        System.out.println(((TeacherModel)queryList.get(0)[0]).getStudents());
    //        System.out.println(((StudentModel)queryList.get(0)[1]).getTeacher());
            System.out.println(queryList.get(0).getStudents());
            s.close();
        }
        void fn1(){
    Session s = HibernateUtil.getSession();
            
            Query q = s.createQuery("from TeacherModel tm right outer join tm.students s");
            List<Object[]> queryList  = q.list();
            System.out.println(((TeacherModel)queryList.get(35)[0]).getStudents());
    //        System.out.println(((StudentModel)queryList.get(0)[1]).getTeacher());
    //        System.out.println(queryList.get(30).getStudents().size());
            
            s.close();
        }
        public static void main(String[] args) {
            new MulHQLApp().fn1();
        }
    }
    /*
    List<Object> queryList  = q.list();
    for(Object obj:queryList){
        System.out.println(obj);
    }
    
    List<Object[]> queryList  = q.list();
            for(Object[] objs:queryList){
                for(Object obj:objs){
                    System.out.print(obj+"	");
                }
                System.out.println();
            }
    
    
    */
  • 相关阅读:
    8行代码批量下载GitHub上的图片
    python经典面试算法题1.1:如何实现链表的逆序
    pandas处理excel的常用方法技巧(上)
    numpy---python数据分析
    python、C++经典算法题:打印100以内的素数
    Java中数组、集合、链表、队列的数据结构和优缺点和他们之间的区别
    Hystrix
    Java中的static关键字解析
    Spring Boot
    Springcloud和Dubbo的区别。Eureka和Ribbon和Hystrix和zuul
  • 原文地址:https://www.cnblogs.com/xyhero/p/9351721.html
Copyright © 2011-2022 走看看