1. 程式人生 > >hibernate中的HQL和QBC查詢

hibernate中的HQL和QBC查詢

 

建立session及事務

    //1.讀取src下hibernate.cfg.xml配置檔案
        Configuration cft = new Configuration();
        Configuration configure = cft.configure();
        //2.建立sessionFactory工廠
        SessionFactory sessionFactory = configure.buildSessionFactory();
        //3.開啟session回話
        Session session = sessionFactory.openSession();
        
        //4.建立事務
        Transaction transaction = session.beginTransaction();
  1. HQL

          查詢所有

  1.         // Query方法查詢所有 from + 表對應的實體類   
             Query query = session.createQuery("from Teacher");//通過控制Teacher實體操作資料表
             List<Teacher> teachers = query.list();
    

    條件查詢

            Query query = session.createQuery("from Teacher t where t.tname=?");
            query.setParameter(0, "老司機1");//問號的序號從0開始
            List<Teacher> list = query.list();

    順序查詢

            //desc降序 asc升序 
            Query query = session.createQuery("from Teacher order by tid desc");
            List<Teacher> list = query.list();

    模糊查詢

     Query query = session.createQuery("from Teacher t where t.tname like ?");//?代表佔位符
            query.setParameter(0, "%1%");
            List<Teacher> list = query.list();

    分頁查詢

     Query query = session.createQuery("from Teacher");
            //設定開始位置既最小id
            query.setFirstResult(0);
            //設定每頁記錄數
            query.setMaxResults(2);
            List<Teacher> list = query.list();

     

  2. QBC 

  查詢所有

        Criteria criteria = session.createCriteria(Teacher.class);//查詢Teacher對應的資料表
        List<Teacher> list = criteria.list();

條件查詢

        Criteria criteria = session.createCriteria(Teacher.class);
        criteria.add(Restrictions.eq("tid", 3));//tid=3
        criteria.add(Restrictions.eq("tage", "25"));//tage=25
        List<Teacher> list = criteria.list();

模糊查詢

        Criteria criteria = session.createCriteria(Teacher.class);
        criteria.add(Restrictions.like("tname", "%1%"));//tname like ("%1%")
        List<Teacher> list = criteria.list();

順序查詢

        Criteria criteria = session.createCriteria(Teacher.class);
        criteria.addOrder(Order.desc("tid"));
        List<Teacher> list = criteria.list();

分頁查詢 

        Criteria criteria = session.createCriteria(Teacher.class);
        criteria.setFirstResult(0);
        criteria.setMaxResults(2);
        List<Teacher> list = criteria.list();