1. 程式人生 > >Hibernate框架之路(四)hibernate查詢方式

Hibernate框架之路(四)hibernate查詢方式

集合 commit void div 第一個 -- cto 下標 action

OID查詢

    /**
     * OID 查詢
     * 根據ID查詢
     * 一對多查詢
     */
    @Test
    public void test() {
        SessionFactory factory = null;
        Session session = null;
        Transaction ts = null;
        try {
            factory = HibernateUtils.getSessionFactory();
            session 
= factory.openSession(); ts = session.beginTransaction(); // 查詢客戶所擁有的聯系人;先查詢客戶 ID=1的客戶;根據客戶查詢聯系人 User user = session.get(User.class, 1); //獲得聯系人的set集合 Set<Link> link = user.getLink(); // 輸出聯系人個數 System.out.println(link.size()); ts.commit(); }
catch (Exception e) { ts.rollback(); }finally{ session.close(); factory.close(); } }

HQL查詢所有

    /**
     *查詢所有
     *hql
     */
    @Test
    public void test2() {
        SessionFactory factory = null;
        Session session 
= null; Transaction ts = null; try { factory = HibernateUtils.getSessionFactory(); session = factory.openSession(); ts = session.beginTransaction(); // 查詢所有客戶 from 客戶實體類名稱 Query query = session.createQuery("from User"); List<User> list = query.list(); for (User user : list) { System.out.println(user.getuId()+"\t"+user.getuName()); } System.out.println("-------------------------"); Query query2 = session.createQuery("from Link"); List<Link> list2 = query2.list(); for (Link link : list2) { System.out.println(link.getcId()+"\t"+link.getcName()); } ts.commit(); } catch (Exception e) { ts.rollback(); }finally{ session.close(); factory.close(); } }

Hql條件查詢

@Test
    public void test2() {
        SessionFactory factory = null;
        Session session = null;
        Transaction ts = null;
        try {
            factory = HibernateUtils.getSessionFactory();
            session = factory.openSession();
            ts = session.beginTransaction();
            //創建query對象    from Cuastomer where user_id=? and user_name=?
            Query query = session.createQuery("from User c where c.uId=? and c.uName=?");
            /**
             * 向占位符裏填寫數據;占位符下標從0開始
             * 第一個參數為下標
             * 第二個參數為值
             */
            query.setParameter(0, 1);
            query.setParameter(1, "張三");
            List<User> list = query.list();
            for (User user : list) {
                System.out.println(user.getuTel());
            }
            ts.commit();
        } catch (Exception e) {
            ts.rollback();
        }finally{
            session.close();
            factory.close();
        }
    }

hql模糊查詢

    @Test
    public void test2() {
        SessionFactory factory = null;
        Session session = null;
        Transaction ts = null;
        try {
            factory = HibernateUtils.getSessionFactory();
            session = factory.openSession();
            ts = session.beginTransaction();
            //創建query對象    
            Query query = session.createQuery("from User c where c.uName like ?");
            /**
             * 向占位符裏填寫數據;占位符下標從0開始
             * 第一個參數為下標
             * 第二個參數為值
             */
            query.setParameter(0, "%張%");
            List<User> list = query.list();
            for (User user : list) {
                System.out.println(user.getuTel());
            }
            ts.commit();
        } catch (Exception e) {
            ts.rollback();
        }finally{
            session.close();
            factory.close();
        }
    }

hql排序

    @Test
    public void test2() {
        SessionFactory factory = null;
        Session session = null;
        Transaction ts = null;
        try {
            factory = HibernateUtils.getSessionFactory();
            session = factory.openSession();
            ts = session.beginTransaction();
            //創建query對象    desc 倒序     asc正序
            Query query = session.createQuery("from User order by uId asc");
        
            List<User> list = query.list();
            for (User user : list) {
                System.out.println(user.getuId());
            }
            ts.commit();
        } catch (Exception e) {
            ts.rollback();
        }finally{
            session.close();
            factory.close();
        }
    }

HQL分頁

    @Test
    public void test2() {
        SessionFactory factory = null;
        Session session = null;
        Transaction ts = null;
        try {
            factory = HibernateUtils.getSessionFactory();
            session = factory.openSession();
            ts = session.beginTransaction();
            //創建query對象    
            Query query = session.createQuery("from User");
            query.setFetchSize(0);//開始位置
            query.setMaxResults(3);    //每頁顯示個數    
            List<User> list = query.list();
            for (User user : list) {
                System.out.println(user.getuId());
            }
            ts.commit();
        } catch (Exception e) {
            ts.rollback();
        }finally{
            session.close();
            factory.close();
        }
    }

hql查詢某個字段

    @Test
    public void test2() {
        SessionFactory factory = null;
        Session session = null;
        Transaction ts = null;
        try {
            factory = HibernateUtils.getSessionFactory();
            session = factory.openSession();
            ts = session.beginTransaction();
            //創建query對象    
            Query query = session.createQuery("select uId from User");
            List<Object> list = query.list();
            for (Object object : list) {
                System.out.println(object);
            }
            ts.commit();
        } catch (Exception e) {
            ts.rollback();
        }finally{
            session.close();
            factory.close();
        }
    }

hql函數查詢

    @Test
    public void test2() {
        SessionFactory factory = null;
        Session session = null;
        Transaction ts = null;
        try {
            factory = HibernateUtils.getSessionFactory();
            session = factory.openSession();
            ts = session.beginTransaction();
            //創建query對象    
            Query query = session.createQuery("select count(*) from User");
            Object obj = query.uniqueResult();
            Long lbj = (long) obj;
            int count =    lbj.intValue();
            System.out.println(count);    
            ts.commit();
        } catch (Exception e) {
            ts.rollback();
        }finally{
            session.close();
            factory.close();
        }
    }

Hibernate框架之路(四)hibernate查詢方式