• Hibernate-04


    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();
    }        

    查询优化

    既能朝九晚五,又能浪迹天涯
  • 相关阅读:
    第6课.内联函数分析
    第5课.引用的本质分析
    第4课.布尔类型和引用
    第3课.进化后的const
    第2课.C到C++的升级
    c语言深度解剖(笔记)
    你必须知道的495个c语言问题(笔记)
    JS弹出框
    车牌号正则表达式
    input输入文字后背景色变成了黄色 CSS改变(去掉黄色背景)
  • 原文地址:https://www.cnblogs.com/jackerzhou/p/9906718.html
Copyright © 2020-2023  润新知