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();
            }
    
    
    */
  • 相关阅读:
    bzoj1615 [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
    bzoj3402 [Usaco2009 Open]Hide and Seek 捉迷藏
    CF B. Planning The Expedition
    Codeforces ~ 1009C ~ Annoying Present (贪心)
    Codeforces Round#498(Div.3)D. Two Strings Swaps
    牛客Another Distinct Values
    牛客多校第四场 G Maximum Mode
    可持化永久树 的 STL ( rope )
    KMP算法 (字符串的匹配)
    求(3+开根5) N次方的整数部分最后3位
  • 原文地址:https://www.cnblogs.com/xyhero/p/9351721.html
Copyright © 2011-2022 走看看