<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    數(shù)據(jù)加載中……
    在j2se環(huán)境中ejb3.0操作entity bean的通用類 PerfectEntityManager
    package com.vsc.study.ejb.util;

    import com.vsc.study.ejb.entitybean.Function;
    import java.lang.reflect.Method;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.Persistence;

    public class PerfectEntityManager {
        
        private EntityManagerFactory emf;
        private EntityManager em;
        
        public PerfectEntityManager() {
            emf = Persistence.createEntityManagerFactory("study-ejbPU");
            em = emf.createEntityManager();
        }
        
        public PerfectEntityManager(String utinName) {
            emf = Persistence.createEntityManagerFactory(utinName);
            em = emf.createEntityManager();
        }
        
        public Map<Integer, List> getCurrentResults(int currentPage, int pageSize,
                int maxResults, String querySql) {
            if (maxResults == 0) {
                maxResults = em.createQuery(querySql).getResultList().size();
            }
            List list = em.createQuery(querySql).setFirstResult(
                    (currentPage - 1) * pageSize).setMaxResults(pageSize)
                    .getResultList();
            HashMap<Integer, List> hashMap = new HashMap<Integer, List>();
            hashMap.put(maxResults, list);
            return hashMap;
        }
        
        public Map<Integer, List> getCurrentResults(int currentPage, int pageSize,
                int maxResults, Object object) {
            
            if (maxResults == 0) {
                maxResults = em.createQuery("from " + object.getClass())
                .getResultList().size();
            }
            List list = em.createQuery("from " + object.getClass()).setFirstResult(
                    (currentPage - 1) * pageSize).setMaxResults(pageSize)
                    .getResultList();
            HashMap<Integer, List> hashMap = new HashMap<Integer, List>();
            hashMap.put(maxResults, list);
            return hashMap;
        }
        
        String separator = " ";
        
        public String setEjbql(Object object, List<Ejbql> ejbqlList) {
            StringBuilder sb = new StringBuilder("select o from "
                    + object.getClass() + " as o where 1=1 ");
            for (Ejbql ejbql : ejbqlList) {
                if (ejbql == null) {
                    continue;
                }
                if (ejbql.getCloumns() == null) {
                    continue;
                }
                if (ejbql.getOperator() == null) {
                    continue;
                }
                if (ejbql.getValues() == null) {
                    continue;
                }
                sb.append(ejbql.getAndOr() + separator);
                sb.append("o." + ejbql.getCloumns());
                if (ejbql.getOperator().equals("like")) {
                    sb.append(separator + ejbql.getOperator() + separator);
                    sb.append("'%" + ejbql.getValues() + "%'" + separator);
                } else {
                    sb.append(ejbql.getOperator() + separator);
                    if (ejbql.getValues() instanceof String) {
                        sb.append("'" + ejbql.getValues() + "'" + separator);
                    } else {
                        sb.append(ejbql.getValues() + separator);
                    }
                }
            }
            return sb.toString();
        }
        
        public String setEjbql(String classname, List<Ejbql> ejbqlList) {
            StringBuilder sb = new StringBuilder("select o from " + classname
                    + " as o where 1=1 ");
            for (Ejbql ejbql : ejbqlList) {
                if (ejbql == null) {
                    continue;
                }
                if (ejbql.getCloumns() == null) {
                    continue;
                }
                if (ejbql.getOperator() == null) {
                    continue;
                }
                if (ejbql.getValues() == null) {
                    continue;
                }
                sb.append(ejbql.getAndOr() + separator);
                sb.append("o." + ejbql.getCloumns());
                if (ejbql.getOperator().equals("like")) {
                    sb.append(separator + ejbql.getOperator() + separator);
                    sb.append("'%" + ejbql.getValues() + "%'" + separator);
                } else {
                    sb.append(ejbql.getOperator() + separator);
                    if (ejbql.getValues() instanceof String) {
                        sb.append("'" + ejbql.getValues() + "'" + separator);
                    } else {
                        sb.append(ejbql.getValues() + separator);
                    }
                }
            }
            return sb.toString();
        }
        
        public int remove(Object object) {
            if (object == null)
                throw new NullPointerException();
            try {
                em.getTransaction().begin();
                em.remove(this.search(object));
                em.getTransaction().commit();
                em.close();
                emf.close();
                return 0;
            } catch (Exception e) {
                return -2;
            }
        }
        
        public int update(Object object) {
            if (object == null || this.getId(object) == null)
               throw new NullPointerException();
            Object obj = this.search(object);
            this.updateBean(object, obj);
            try {
                em.getTransaction().begin();
                em.merge(obj);
                em.getTransaction().commit();
                em.close();
                emf.close();
                return 0;
            } catch (Exception e) {
                return -1;
            }
        }
        
        public Object search(Object object) {
            if (object == null)
               throw new NullPointerException();
            try {
                Object obj = em.find(object.getClass(), this.getId(object));
                return obj;
            } catch (Exception e) {
                e.printStackTrace();
                return -1;
            }
        }
        
        public List searchAll(Object object) {
            if (object == null)
                throw new NullPointerException();
            try {
                em.getTransaction().begin();
                List list = em.createQuery("from " + object.getClass()).getResultList();
                em.getTransaction().commit();
                em.close();
                emf.close();
                return list;
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
        
        public Long insert(Object object) {
            try {
                em.getTransaction().begin();
                em.persist(object);
                em.getTransaction().commit();
                em.close();
                emf.close();
                return this.getId(object);
            } catch (Exception e) {
                e.printStackTrace();
                return -1l;
            }
        }
        
        public Long getId(Object object) {
            if (object == null)
                throw new NullPointerException();
            try {
                return (Long) object.getClass().getDeclaredMethod("getId").invoke(object);
            } catch (Exception e) {
                e.printStackTrace();
                return -5l;
            }
        }
        
        /**
         * obj is update Object
         *
         * @param object
         * @param obj
         */
        public void updateBean(Object object, Object obj) {
            try {
                Method[] methods = object.getClass().getDeclaredMethods();
                Method method;
                Object objectMethodValue;
                Object objMethodValue;
                for (int i = 0; i < methods.length; i++) {
                    if (methods[i].getName().trim().startsWith("get")) {
                        if (methods[i].invoke(object) == null) {
                            System.out
                                    .println("----------this field is null--------------");
                            continue;
                        }
                        objectMethodValue = methods[i].invoke(object);
                        objMethodValue = methods[i].invoke(obj);
                        if (objectMethodValue.equals(objMethodValue)) {
                            System.out
                                    .println("----------field is equals--------------");
                            continue;
                        }
                        method = obj.getClass().getDeclaredMethod(
                                methods[i].getName().trim().replaceFirst("g", "s"),
                                methods[i].getReturnType());
                        method.invoke(obj, objectMethodValue);
                        System.out.println("==============="
                                + methods[i].invoke(obj));
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    posted on 2008-02-25 15:26 java flex 結(jié)合 閱讀(701) 評論(0)  編輯  收藏 所屬分類: ejb 3.0

    主站蜘蛛池模板: 欧美日韩国产免费一区二区三区| 伊在人亚洲香蕉精品区麻豆| 亚洲av日韩av无码av| 成人影片麻豆国产影片免费观看 | 香蕉97碰碰视频免费| 亚洲码国产精品高潮在线| 88av免费观看| 羞羞视频免费网站入口| 亚洲成在人天堂在线| 卡一卡二卡三在线入口免费| 亚洲熟女乱综合一区二区| 一区二区免费在线观看| 亚洲嫩草影院久久精品| 美女被免费视频网站a国产| A级毛片成人网站免费看| 亚洲香蕉久久一区二区三区四区| 免费人成年轻人电影| 黄色永久免费网站| 一个人免费观看视频在线中文 | 无码人妻一区二区三区免费看| va天堂va亚洲va影视中文字幕| 亚洲美日韩Av中文字幕无码久久久妻妇| 久久午夜羞羞影院免费观看 | 色播在线永久免费视频| 蜜桃视频在线观看免费视频网站WWW | 精品国产免费一区二区| 中文字幕在线免费观看| 乱淫片免费影院观看| 亚洲精品伊人久久久久| 亚洲av无码乱码国产精品| 亚洲成A∨人片天堂网无码| 亚洲成人中文字幕| 免费无码又爽又刺激高潮的视频| 免费国产成人α片| 视频一区在线免费观看| 亚洲人成77777在线播放网站不卡| 亚洲av无码乱码国产精品fc2| gogo全球高清大胆亚洲| 女人被弄到高潮的免费视频| 91免费在线播放| 久久久久久国产精品免费免费男同|