⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 querydaobean.java

📁 精通EJB3源码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
            out.append(person.getName()+ "<BR>");            
        }          
        return out.toString();
    }
    
    private String QueryISNULLOperate(){
    	StringBuffer out = new StringBuffer("*************** QueryISNULLOperate 结果打印 ****************<BR>");
    	out.append("--------------- 查询含有购买者的所有Order -------------<BR>");
        Query query = em.createQuery("select o from Order as o where o.ower is not null order by o.orderid");
        List<Order> result = (List<Order>) query.getResultList();
        for(Order order : result){
            out.append("订单号:"+ order.getOrderid()+ "<BR>");
        }
        out.append("--------------- 查询没有购买者的所有Order -------------<BR>");
        query = em.createQuery("select o from Order as o where o.ower is null order by o.orderid");
        result = (List<Order>) query.getResultList();
        for(Order order : result){
            out.append("订单号:"+ order.getOrderid()+ "<BR>");
        }       
        return out.toString();       
    }
    
    private String QueryISEMPTYOperate(){
    	StringBuffer out = new StringBuffer("*************** QueryISEMPTYOperate 结果打印 ****************<BR>");
    	out.append("--------------- 查询含有订单项的所有Order -------------<BR>");
        Query query = em.createQuery("select o from Order as o where o.orderItems is not empty order by o.orderid");
        List<Order> result = (List<Order>) query.getResultList();        
        for(Order order : result){
            out.append("订单号:"+ order.getOrderid()+ "<BR>");
        }
        out.append("--------------- 查询没有订单项的所有Order -------------<BR>");
        query = em.createQuery("select o from Order as o where o.orderItems is empty order by o.orderid");
        result = (List<Order>) query.getResultList();
        for(Order order : result){
            out.append("订单号:"+ order.getOrderid()+ "<BR>");
        }       
        return out.toString();       
    }  
    
    private String QueryEXISTSOperate(){
        StringBuffer out = new StringBuffer("*************** QueryEXISTSOperate 结果打印 ****************<BR>");
        out.append("--------------- 如果存在订单号1,就获取所有OrderItem -------------<BR>");
        //如果存在订单号1,就获取所有OrderItem
        Query query = em.createQuery("select oi from OrderItem as oi where exists (select o from Order o where o.orderid=1)");
        List<OrderItem> result = (List<OrderItem>) query.getResultList();
        for(OrderItem item : result){
            out.append("所有订购的产品名:"+ item.getProductname()+ "<BR>");
        }
        out.append("--------------- 如果不存在订单号10,就获取id为1的OrderItem -------------<BR>");
        //如果不存在订单号10,就获取id为1的OrderItem
        query = em.createQuery("select oi from OrderItem as oi where oi.id=1 and not exists (select o from Order o where o.orderid=10)");
        OrderItem item = (OrderItem) query.getSingleResult();
        if(item!=null){
            out.append("订单项ID为1的订购产品名:"+ item.getProductname()+ "<BR>");
        }        
        return out.toString();       
    }
    
    private String QueryStringOperate(){
    	StringBuffer out = new StringBuffer("*************** QueryStringOperate 结果打印 ****************<BR>");
    	out.append("---------- 查询所有人员,并在姓名后面加上字符串\"_foshan\",另外从字符常量ABC中去除C ----------<BR>");
        Query query = em.createQuery("select p.personid, concat(p.name, '_foshan'),trim(TRAILING 'C' FROM 'ABC') from Person as p");
        List<Object[]> result = (List<Object[]>) query.getResultList();
        for(Object[] row : result){//取每一行
            out.append("personid="+ row[0]+ "; PersonName="+ row[1]+ "; ABC去除后面的C="+ row[2]+ "<BR>");    
        }
        out.append("---------- 查询所有人员,只取姓名的前三个字符 ----------<BR>");
        query = em.createQuery("select p.personid, substring(p.name,1,3) from Person as p");
        result = (List<Object[]>) query.getResultList();
        for(Object[] row : result){//取每一行
            out.append("personid="+ row[0]+ "; PersonName="+ row[1]+ "<BR>");    
        }
        return out.toString();
    }  
    
    private String QueryMathLOperate(){
        StringBuffer out = new StringBuffer("*************** QueryMathLOperate 结果打印 ****************<BR>");
        out.append("--------------- 查询所有Order的订单号及其订单项的数量 -------------<BR>");
        Query query = em.createQuery("select o.orderid, size(o.orderItems) from Order as o group by o.orderid");
        List<Object[]> result = (List<Object[]>)query.getResultList();
        for(Object[] row : result){//取每一行
            out.append("订单号:"+ row[0].toString()+ "; 订单项共"+row[1].toString()+ "项<BR>");  
        }
        out.append("--------------- 查询所有Order的订单号及其总金额/10的余数 -------------<BR>");
        query = em.createQuery("select o.orderid, mod(o.amount, 10) from Order as o");
        result = (List<Object[]>)query.getResultList();
        for(Object[] row : result){//取每一行
            out.append("订单号:"+ row[0].toString()+ "; 总金额/10的余数:"+row[1].toString()+ "<BR>");  
        }
        return out.toString();
    }
  
    private String QuerySubQueryOperate(){
        //查询年龄为26岁的购买者的所有Order
        Query query = em.createQuery("select o from Order as o where o.ower in(select p from Person as p where p.age =26) order by o.orderid");
        List<Order> result = (List<Order>)query.getResultList();
        StringBuffer out = new StringBuffer("*************** QuerySubQueryOperate 结果打印 ****************<BR>");
        out.append("--------------- 查询年龄为26岁的购买者的所有Order -------------<BR>");
        for(Order order : result){
            out.append("订单号:"+ order.getOrderid()+ "<BR>");
        }     
        return out.toString();       
    }
 
    /* Mysql数据库AddPerson存储过程的DDL:
     * 
        CREATE PROCEDURE `AddPerson`()
            NOT DETERMINISTIC
            SQL SECURITY DEFINER
            COMMENT ''
        BEGIN
             INSERT into person(`PersonName`,`sex`,`age`) values('存储过程',1,25);
        END;
     */
    private String QueryNoneReturnValueStoreProcedure(){
        //调用无返回参数的存储过程
        Query query = em.createNativeQuery("{call AddPerson()}");
        query.executeUpdate();
        StringBuffer out = new StringBuffer("*************** QueryNoneReturnValueStoreProcedure 结果打印 ****************<BR>");
        return out.toString();       
    }
 
    /* Mysql数据库GetPersonName存储过程的DDL:
     * 
        CREATE PROCEDURE `GetPersonName`(IN Pid INTEGER(11))
            NOT DETERMINISTIC
            SQL SECURITY DEFINER
            COMMENT ''
        BEGIN
            select personname from person where `personid`=Pid;
        END;
     */
    private String QuerySingleObjectStoreProcedure(){
        //调用返回单个值的存储过程
        Query query = em.createNativeQuery("{call GetPersonName(?)}");
        query.setParameter(1, new Integer(1));
        String result = query.getSingleResult().toString();
        StringBuffer out = new StringBuffer("*************** QuerySingleObjectStoreProcedure 结果打印 ****************<BR>");
        out.append("返回值(人员姓名)为:"+ result+ "<BR>");
        return out.toString();       
    }
    
    /* Mysql数据库GetPersonList存储过程的DDL:
     * 
        CREATE PROCEDURE `GetPersonList`()
            NOT DETERMINISTIC
            SQL SECURITY DEFINER
            COMMENT ''
        BEGIN
             select * from person;
        END;
     */
    private String QueryStoreProcedure(){
        //调用返回Person全部属性的存储过程
        Query query = em.createNativeQuery("{call GetPersonList()}", Person.class);
        List<Person> result = (List<Person>)query.getResultList();
        StringBuffer out = new StringBuffer("*************** QueryStoreProcedure 结果打印 ****************<BR>");
        for(Person person : result){           
            out.append(person.getName()+ "<BR>");            
        }
        return out.toString();       
    }
 
    /* Mysql数据库GetPersonPartProperties存储过程的DDL:
     * 
        CREATE PROCEDURE `GetPersonPartProperties`()
            NOT DETERMINISTIC
            SQL SECURITY DEFINER
            COMMENT ''
        BEGIN
             SELECT personid, personname from person;
        END;
     */
    private String QueryPartColumnStoreProcedure(){
        //调用返回记录集部分列的存储过程
        Query query = em.createNativeQuery("{call GetPersonPartProperties()}");
        List<Object[]> result = (List<Object[]>) query.getResultList();
        StringBuffer out = new StringBuffer("*************** QueryPartColumnStoreProcedure 结果打印 ****************<BR>");
        for(Object[] row : result){//取每一行
            out.append("人员ID="+ row[0]+ "; 姓名="+ row[1]+ "<BR>");    
        }
        return out.toString();       
    }

    private String QueryAllAnySomeOperate(){
        //查询订单中每个子项都大于100元的所有Order
        Query query = em.createQuery("select o from Order o where 100<ALL(select item.price from o.orderItems item)");
        List<Order> result = (List<Order>)query.getResultList();
        StringBuffer out = new StringBuffer("*************** QuerySubQueryOperate 结果打印 ****************<BR>");
        out.append("--------------- 查询订单中,每个子项都大于100元的所有Order -------------<BR>");
        for(Order order : result){
            out.append("订单号:"+ order.getOrderid()+ "<BR>");
        }
        
        //查询订单中有一个子项大于700元的所有Order
        query = em.createQuery("select o from Order o where 700<ANY(select item.price from o.orderItems item)");
        result = (List<Order>)query.getResultList();
        out.append("--------------- 查询订单中,只要有一个子项大于700元的所有Order -------------<BR>");
        for(Order order : result){
            out.append("订单号:"+ order.getOrderid()+ "<BR>");
        }
        
        //查询订单中有一个子项大于700元的所有Order
        query = em.createQuery("select o from Order o where 700<SOME(select item.price from o.orderItems item)");
        result = (List<Order>)query.getResultList();
        out.append("--------------- 查询订单中,只有一个或多个子项大于700元的所有Order -------------<BR>");
        for(Order order : result){
            out.append("订单号:"+ order.getOrderid()+ "<BR>");
        }
        return out.toString();       
    }
    
    private String QueryMemberOf(){
        //查询含有某个订单项的订单
        Query query = em.createQuery("select o from Order o where ?1 member of o.orderItems");
        OrderItem item = new OrderItem();
        item.setId(1);
        query.setParameter(1, item);
        List<Order> result = (List<Order>) query.getResultList();
        StringBuffer out = new StringBuffer("*************** QueryMemberOf 结果打印 ****************<BR>");
        for(Order order : result){
            out.append(order.getOrderid()+ "<BR>");            
        }
        return out.toString();       
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -