HQL查詢語法 聚合查詢:count,sum ,svg,max,min 投影查詢 Criteria查詢語法:和HQL一樣的也是面向對象的ORM查詢 離線Criteria 查詢優化 ...
HQL查詢語法
查詢:
public class Dome{ Session session = HibernaeUitls.openSession(); Transaction tx = session.beginTransaction(); //待執行執行sql String hql = "from User";
String hqls = "from cn.it.User"//類路徑下
//排序查詢
String Orderby = "from cn.it.User Order by u_id asc";
String Orderby2 = "from cn.it.User Order by u_id desc";
//條件查詢
String Wherehql = "from cn.it.User where u_id = ?";
String wherehql = "from cn.it.User where u_id =:id";
//創建查詢對象 Query query = session.createQuery(hql); List list = query.list(); System.out.println(list); //提交事務 tx.commit(); //關閉session session.close(); }
//分頁 public void fun4(){ Session session = HibernateUtils.openSession(); Transaction tx = session.beginTransaction(); //---------------------------------------------------- String hql1 = " from cn.it.User ";//完整寫法 Query query = session.createQuery(hql1); //limit ?,? // (當前頁數-1)*每頁條數 query.setFirstResult(4); query.setMaxResults(5); List list = query.list(); System.out.println(list); //---------------------------------------------------- tx.commit(); session.close(); }
聚合查詢:count,sum ,svg,max,min
public void fun5(){ Session session = HibernateUtils.openSession(); Transaction tx = session.beginTransaction(); //---------------------------------------------------- String hql1 = " select count(*) from cn.it.User "; String hql2 = " select sum(cust_id) from cn.it.User "; String hql3 = " select avg(cust_id) from cn.it.User "; String hql4 = " select max(cust_id) from cn.it.User "; String hql5 = " select min(cust_id) from cn.it.User "; Query query = session.createQuery(hql5); Number number = (Number) query.uniqueResult(); System.out.println(number); //---------------------------------------------------- tx.commit(); session.close(); }
投影查詢
public void fun6(){ Session session = HibernateUtils.openSession(); Transaction tx = session.beginTransaction(); //----------------------------------------------------// String hql1 = " select u_name from cn.it.User "; String hql2 = " select u_name,u_id from cn.it.User "; String hql3 = " select new User(u_id,u_name) from cn.it.User "; Query query = session.createQuery(hql3); List list = query.list(); System.out.println(list); //----------------------------------------------------// tx.commit(); session.close(); }
Criteria查詢語法:和HQL一樣的也是面向對象的ORM查詢
簡單查詢:
public void fun(){ Session session = HibernateUtils.openSession(); Transaction tx = session.beginTransaction(); //-------------------------------------------------- User c = session.createCritreria(User.class); List <User> list = c.list(): System.out.println(list); //-------------------------------------------------- tx.commit(); session.clone(); }
#條件查詢 ---------- //--------------------------------------------------------------- Criteria c = session.createCriteria(User.clsss); //添加 c.add(Restrictions.eq("u_id",32)); List<User> list = c.list(); System.out.println(list); //--------------------------------------------------------------- tx.commit(); session.close();
#分頁 ---------- //--------------------------------------------------------------- Criteria c = session.createCriteria(User.clsss); c.setFirstResult(1); c.setMaxResult(4); List<User> list = c.list(); System.out.println(list); //--------------------------------------------------------------- tx.commit(); session.close();
#排序 //--------------------------------------------------------------- Criteria c = session.createCriteria(User.clsss); c.addOrder(Order.asc("u_id")); //c.addOrder(Order.desc("u_id")); List<User> list = c.list(); System.out.println(list); //--------------------------------------------------------------- tx.commit(); session.close();
統計 //--------------------------------------------------------------- Criteria c = session.createCriteria(User.clsss); c.setProjection(Projections.rowCount()); List<User> list = c.list(); System.out.println(list); //--------------------------------------------------------------- tx.commit(); session.close();
離線Criteria
Public void fun(){ DetachedCriteria dc = DetachedCriteria.forClass(User.class); dc.add(Restrictions.idEq(61)); //------------------------------------------------------------- Session session = HibernateUtils.openSession(); Transaction tx = session.beginTransaction(); //----------------------------------------------------------- Criteria c = dc.getExecutableCriteria(session); List list = c.list(); System.out.println(list); //------------------------------------------------------------- tx.commit(); session.close(); }
查詢優化