hibernate中的HQL和QBC查詢
阿新 • • 發佈:2018-11-09
建立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();
-
HQL
查詢所有
-
// 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();
-
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();