Hibernate學習(4)簡單的HQl查詢

1.基本的查詢

    @Test
    public void test1(){
        System.out.println("test....");
        TUserEntity user = null;
        SessionFactory sessionFactory = SessionFactoryUtil.getSession();
        Session session = null;
        session = sessionFactory.openSession();
        org.hibernate.Query query =session.createQuery("from TUserEntity");
        List users = query.list();
        for (int i=0;i<users.size();i++){
            user = (TUserEntity)users.get(i);
            System.out.println(i+"--"+user.getUsername());
        }
    }

用List接收返回的集合,再把Object轉換爲實體類類型
這時發的sql語句
這裏寫圖片描述
結果
這裏寫圖片描述

2.查詢一條數據

    @Test
    public void test2(){
        System.out.println("test....");
        String username = null;
        SessionFactory sessionFactory = SessionFactoryUtil.getSession();
        Session session = null;
        session = sessionFactory.openSession();
        org.hibernate.Query query =session.createQuery("select user.username from TUserEntity user ");
        List usernames = query.list();
        for (int i=0;i<usernames.size();i++){
            username = (String)usernames.get(i);
            System.out.println(1+i+"--"+username);
        }
    }

轉換爲String類型
sql語句:
這裏寫圖片描述
結果:
這裏寫圖片描述

3.查詢倆個以上的數據結果會以數組返回

 @Test
    public void test3(){
        System.out.println("test....");

        SessionFactory sessionFactory = SessionFactoryUtil.getSession();
        Session session = null;
        session = sessionFactory.openSession();
        org.hibernate.Query query =session.createQuery("select user.password,user.username from TUserEntity as user");
        List users = query.list();
        for (int i=0;i<users.size();i++){
            Object obj[] = (Object[]) users.get(i);
            System.out.println(obj[0]+"--"+obj[1]);
        }
    }

這裏寫圖片描述

4.利用distinct使返回的值是不重複的

  @Test
    public void test4(){
        System.out.println("test....");
        String  username = null;
        SessionFactory sessionFactory = SessionFactoryUtil.getSession();
        Session session = null;
        session = sessionFactory.openSession();
        org.hibernate.Query query =session.createQuery("select distinct user.username from TUserEntity as user ");
        List users = query.list();
        for (int i=0;i<users.size();i++){
            username = (String)users.get(i);
            System.out.println(i+1+"--"+username);
        }
    }

這裏寫圖片描述
這裏寫圖片描述

5.利用構造函數返回實體類

@Test
    public void test5(){
        System.out.println("test....");
        TUserEntity  user = null;
        SessionFactory sessionFactory = SessionFactoryUtil.getSession();
        Session session = null;
        session = sessionFactory.openSession();
        org.hibernate.Query query =session.createQuery("select new TUserEntity(user.uid,user.username,user.password,user.age) from TUserEntity as user ");
        List users = query.list();
        for (int i=0;i<users.size();i++){
            user = (TUserEntity) users.get(i);
            System.out.println(i+1+"--"+user.getUid()+user.getUsername()+user.getPassword()+user.getAge());
        }
    }

給實體類添加構造方法:

    public TUserEntity(int uid, String username, String password, Integer age) {
        this.uid = uid;
        this.username = username;
        this.password = password;
        this.age = age;
    }

    public TUserEntity() {
    }

這裏寫圖片描述

6.獲得記錄集的大小

 @Test
    public void test6(){
        System.out.println("test....");
        SessionFactory sessionFactory = SessionFactoryUtil.getSession();
        Session session = null;
        session = sessionFactory.openSession();
        org.hibernate.Query query =session.createQuery("select count(*) from TUserEntity ");
        Object count = (Object)query.uniqueResult();
        System.out.println("共有"+count+"條記錄");
    }

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章