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

📄 querydaobean.java

📁 EJB3.0-Book实例教程配套资源.
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
package com.foshanshop.ejb3.impl;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import com.foshanshop.ejb3.QueryDAO;
import com.foshanshop.ejb3.bean.Order;
import com.foshanshop.ejb3.bean.OrderItem;
import com.foshanshop.ejb3.bean.Person;
import com.foshanshop.ejb3.bean.SimplePerson;

@Stateless
@Remote ({QueryDAO.class})
public class QueryDAOBean implements QueryDAO {
    @PersistenceContext
    protected EntityManager em;

    public void initdate() {
        try {
            Query query = em.createQuery("select count(*) from Person p");
            Object result = query.getSingleResult();
            if (result == null || Integer.parseInt(result.toString()) == 0) {
                // 没有数据时,插入几条数据用作测试
                // ===================================
                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
                Person person = new Person("liujun", true, new Short("26"),
                        formatter.parse("1980-9-30"));
                Set<Order> orders = new HashSet<Order>();

                Order order1 = new Order(new Float("105.5"), person, new Date());
                order1.addOrderItem(new OrderItem("U盘", new Float("105.5")));

                Order order2 = new Order(new Float("780"), person, new Date());
                order2.addOrderItem(new OrderItem("MP4", new Float("778")));
                order2.addOrderItem(new OrderItem("矿泉水", new Float("2")));
                orders.add(order1);
                orders.add(order2);
                person.setOrders(orders);

                Person person1 = new Person("yunxiaoyi", false,
                        new Short("23"), formatter.parse("1983-10-20"));
                orders = new HashSet<Order>();
                order1 = new Order(new Float("360"), person1, new Date());
                order1.addOrderItem(new OrderItem("香水", new Float("360")));

                order2 = new Order(new Float("1806"), person1, new Date());
                order2.addOrderItem(new OrderItem("照相机", new Float("1800")));
                order2.addOrderItem(new OrderItem("5号电池", new Float("6")));
                orders.add(order1);
                orders.add(order2);
                person1.setOrders(orders);

                // =====================================
                Person person2 = new Person("zhangming", false,
                        new Short("21"), formatter.parse("1985-11-25"));
                orders = new HashSet<Order>();

                order1 = new Order(new Float("620"), person2, new Date());
                order1.addOrderItem(new OrderItem("棉被", new Float("620")));

                order2 = new Order(new Float("3"), person2, new Date());
                order2.addOrderItem(new OrderItem("可乐", new Float("3")));
                orders.add(order1);
                orders.add(order2);
                person2.setOrders(orders);

                em.persist(person2);
                em.persist(person1);
                em.persist(person);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    
    
    public String ExecuteQuery(int index) {
        String result = "";
        switch(index){      
            case 1:
                result = this.NameQuery();
                break;
            case 2:
                result = this.PositionQuery();
                break;
            case 3:
                result = this.QueryOrderBy();
                break;
            case 4:
                result = this.QueryPartAttribute();
                break;
            case 5:
                result = this.QueryConstructor();
                break;
            case 6:
                result = this.QueryAggregation();
                break;
            case 7:
                result = this.QueryGroupBy();
                break;
            case 8:
                result = this.QueryGroupByHaving();
                break;
            case 9:
                result = this.QueryLeftJoin();
                break;
            case 10:
                result = this.QueryInnerJoin();
                break;   
            case 11:
                result = this.QueryInnerJoinLazyLoad();
                break; 
            case 12:
                result = this.QueryJoinFetch();
                break; 
            case 13:
                result = this.QueryEntityParameter();
                break; 
            case 14:
                result = this.QueryBatchUpdate();
                break; 
            case 15:
                result = this.QueryBatchRemove();
                break;  
            case 16:
                result = this.QueryNOTOperate();
                break; 
            case 17:
                result = this.QueryBETWEENOperate();
                break;  
            case 18:
                result = this.QueryINOperate();
                break; 
            case 19:
                result = this.QueryLIKEOperate();
                break;           
            case 20:
                result = this.QueryISNULLOperate();
                break;  
            case 21:
                result = this.QueryISEMPTYOperate();
                break; 
            case 22:
                result = this.QueryEXISTSOperate();
                break;  
            case 23:
                result = this.QueryStringOperate();
                break;  
            case 24:
                result = this.QueryMathLOperate();
                break; 
            case 25:
                result = this.QuerySubQueryOperate();
                break; 
            case 26:
                result = this.QueryNoneReturnValueStoreProcedure();
                break;     
            case 27:
                result = this.QuerySingleObjectStoreProcedure();
                break;   
            case 28:
                result = this.QueryStoreProcedure();
                break;                
            case 29:
                result = this.QueryPartColumnStoreProcedure();
                break;                 
        }        
        return result;
    }
    
    private String NameQuery(){
        //获取指定personid的人员
        Query query = em.createQuery("select p from Person p where p.personid=:Id");
        query.setParameter("Id",new Integer(1));
        List result = query.getResultList();
        StringBuffer out = new StringBuffer("*************** NameQuery 结果打印 ****************<BR>");
        if (result!=null){
            Iterator iterator = result.iterator();
            while( iterator.hasNext() ){
                Person person= (Person)iterator.next();            
                out.append(person.getName()+ "<BR>");            
            }
        }
        return out.toString();
    }
    
    private String PositionQuery(){
        //获取指定personid的人员
        Query query = em.createQuery("select p from Person p where p.personid=?1");
        query.setParameter(1,new Integer(1));
        List result = query.getResultList();
        StringBuffer out = new StringBuffer("*************** PositionQuery 结果打印 ****************<BR>");
        if (result!=null){
            Iterator iterator = result.iterator();
            while( iterator.hasNext() ){
                Person person= (Person)iterator.next();            
                out.append(person.getName()+ "<BR>");            
            }
        }
        return out.toString();
    }
    
    private String QueryOrderBy(){
        //先按年龄降序排序,然后按出生日期升序排序
        Query query = em.createQuery("select p from Person p order by p.age desc, p.birthday asc");
        List result = query.getResultList();
        StringBuffer out = new StringBuffer("*************** QueryOrderBy 结果打印 ****************<BR>");
        if (result!=null){
            Iterator iterator = result.iterator();
            while( iterator.hasNext() ){
                Person person= (Person)iterator.next();            
                out.append(person.getName()+ "<BR>");            
            }
        }
        return out.toString();
    }
    
    private String QueryPartAttribute(){
        //直接查询我们感兴趣的属性(列)
        Query query = em.createQuery("select p.personid, p.name from Person p order by p.personid desc ");
        //集合中的元素不再是Person,而是一个Object[]对象数组
        List result = query.getResultList();
        StringBuffer out = new StringBuffer("*************** QueryPartAttribute 结果打印 ****************<BR>");
        if (result!=null){
            Iterator iterator = result.iterator();            
            while( iterator.hasNext() ){
                //取每一行
                Object[] row = ( Object[]) iterator.next();
                //数组中的第一个值是personid
                int personid = Integer.parseInt(row[0].toString());
                String PersonName = row[1].toString(); 
                out.append("personid="+ personid+ "; Person Name="+PersonName+ "<BR>");    
            }
        }
        return out.toString();
    }
    
    private String QueryConstructor(){
        //我们把需要的两个属性作为SimplePerson的构造器参数,并使用new函数。
        Query query = em.createQuery("select new com.foshanshop.ejb3.bean.SimplePerson(p.name,p.sex) from Person p order by p.personid desc");
        //集合中的元素是SimplePerson对象
        List result = query.getResultList();
        StringBuffer out = new StringBuffer("*************** QueryConstructor 结果打印 ****************<BR>");
        if (result!=null){
            Iterator iterator = result.iterator();
            while( iterator.hasNext() ){
                SimplePerson simpleperson = (SimplePerson) iterator.next();
                out.append("人员介绍:"+ simpleperson.getDescription()+ "<BR>");    
            }
        }
        return out.toString();     
    }
    
    private String QueryAggregation(){
        //获取最大年龄
        Query query = em.createQuery("select max(p.age) from Person p");
        Object result = query.getSingleResult();        

⌨️ 快捷键说明

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