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

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

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

    夢幻之旅

    DEBUG - 天道酬勤

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
    package org.huy.fram.hibernate;

    import java.io.Serializable;
    import java.math.BigDecimal;
    import java.util.List;

    import org.hibernate.Query;
    import org.hibernate.Session;

    /**
     * 
     * <p>
     * Title:[Hibernate Data Access Object Support]
     * </p>
     * <p>
     * Description: [操作數據庫支持類,其它DAO可能繼承該類]
     * </p>
     * <p>
     * Copyright 2009 Huyvanpull Co., Ltd.
     * </p>
     * <p>
     * All right reserved.
     * </p>
     * 
     * 
    @version 1.0
     * 
     * <p>
     * Created by [Huyvanpull] [Jun 26, 2009]
     * </p>
     * <p>
     * Midified by [修改人] [修改時間]
     * </p>
     * 
     
    */

    public class HibDAOSupport
    {
        
    /** DAO的操作po的類型 */
        
    private Class<?> claz = null;
        
        
    /** 構造方法,且只應提供此種構造方法 */
        
    public HibDAOSupport(Class<?> claz)
        
    {
            
    this.claz = claz;
        }

        
        
    /**
         * 
         * <p>
         * Description:[加載對象,返回代理實例]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 26, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @param id
         * 
    @return
         
    */

        
    public Object load(Serializable id)
        
    {
            Object entity 
    = null;
            
    try
            
    {
                Session session 
    = HibernateSessionFactory.getSession();
                entity 
    = session.load(this.claz, id);
            }

            
    catch (RuntimeException re)
            
    {
                
    throw re;
            }

            
    return entity;
        }

        
        
    /**
         * 
         * <p>
         * Description:[得到對象,返回實體類]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 26, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @param id
         * 
    @return
         
    */

        
    public Object get(Serializable id)
        
    {
            Object entity 
    = null;
            
    try
            
    {
                Session session 
    = HibernateSessionFactory.getSession();
                entity 
    = session.get(this.claz, id);
            }

            
    catch (RuntimeException re)
            
    {
                
    throw re;
            }

            
    return entity;
        }

        
        
    /**
         * 
         * <p>
         * Description:[把實例保存到數據庫]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 26, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @param entity
         * 
    @return
         
    */

        
    public Object save(Object entity)
        
    {
            
    try
            
    {
                
    /** 如果entity不是claz的實例,此處會拋出異常,下面代碼不會執行 */
                
    this.isInstance(entity);
                Session session 
    = HibernateSessionFactory.getSession();
                session.save(entity);
                
            }

            
    catch (RuntimeException re)
            
    {
                
    throw re;
            }

            
    return entity;
        }

        
        
    /**
         * 
         * <p>
         * Description:[把實例保存到數據庫]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 26, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @param entity
         * 
    @return
         
    */

        
    public Object update(Object entity)
        
    {
            
    try
            
    {
                
    /** 如果entity不是claz的實例,此處會拋出異常,下面代碼不會執行 */
                
    this.isInstance(entity);
                Session session 
    = HibernateSessionFactory.getSession();
                session.update(entity);
            }

            
    catch (RuntimeException re)
            
    {
                
    throw re;
            }

            
    return entity;
        }

        
        
    /**
         * 
         * <p>
         * Description:[根據實列刪除對象]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 26, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @param object
         * 
    @return
         
    */

        
    public Object delete(Object entity)
        
    {
            
    try
            
    {
                
    /** 如果entity不是claz的實例,此處會拋出異常,下面代碼不會執行 */
                
    this.isInstance(entity);
                Session session 
    = HibernateSessionFactory.getSession();
                session.delete(entity);
            }

            
    catch (RuntimeException re)
            
    {
                
    throw re;
            }

            
    return entity;
        }

        
        
    /**
         * 
         * <p>
         * Description:[根據id刪除對象]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 26, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @param id
         
    */

        
    public void deleteById(Serializable id)
        
    {
            delete(load(id));
        }

        
        
    /**
         * 
         * <p>
         * Description:[不附加條件查詢所有對象]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 26, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @return
         
    */

        
    public List<?> findAll()
        
    {
            String hsql 
    = "from ".concat(this.getEntityClassName());
            
    return this.find(hsql, 00);
        }

        
        
    /**
         * 
         * <p>
         * Description:[根據hsql查詢數據]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 30, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @param hsql
         * HSQL
         * 
    @param beginIndex
         * 查詢起始位置
         * 
    @param pageSize
         * 每頁長度
         * 
    @return
         
    */

        
    public List<?> find(final String hsql, final int beginIndex,
                
    final int pageSize)
        
    {
            List
    <?> entityLst = null;
            
    try
            
    {
                Session session 
    = HibernateSessionFactory.getSession();
                Query query 
    = session.createQuery(hsql);
                
    if (beginIndex != 0)
                
    {
                    query.setFirstResult(beginIndex);
                }

                
    if (pageSize != 0)
                
    {
                    query.setMaxResults(pageSize);
                }

                entityLst 
    = query.list();
            }

            
    catch (RuntimeException re)
            
    {
                
    throw re;
            }

            
    return entityLst;
        }

        
        
    /**
         * 
         * <p>
         * Description:[根據SQL查詢數據]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 30, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @param sql
         * SQL
         * 
    @param beginIndex
         * 查詢起始位置
         * 
    @param pageSize
         * 每頁長度
         * 
    @return
         
    */

        
    public List<?> findBySql(final String sql, final int beginIndex,
                
    final int pageSize)
        
    {
            List
    <?> entityLst = null;
            
    try
            
    {
                Session session 
    = HibernateSessionFactory.getSession();
                Query query 
    = session.createSQLQuery(sql);
                
    if (beginIndex != 0)
                
    {
                    query.setFirstResult(beginIndex);
                }

                
    if (pageSize != 0)
                
    {
                    query.setMaxResults(pageSize);
                }

                entityLst 
    = query.list();
            }

            
    catch (RuntimeException re)
            
    {
                
    throw re;
            }

            
    return entityLst;
        }

        
        
    /**
         * 
         * <p>
         * Description:[根據HQL統計合符條件的數目]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 26, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @param hql
         * 
    @return
         
    */

        
    public int count(final String hql)
        
    {
            
    int count = 0;
            
    try
            
    {
                Session session 
    = HibernateSessionFactory.getSession();
                Query query 
    = session.createQuery(hql);
                count 
    = ((Integer) query.uniqueResult()).intValue();
            }

            
    catch (RuntimeException re)
            
    {
                
    throw re;
            }

            
    return count;
        }

        
        
    /**
         * 
         * <p>
         * Description:[根據原生SQL統計合符條件的數目]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 26, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @param sql
         * 
    @return
         
    */

        
    public int countBySql(final String sql)
        
    {
            
    int count = 0;
            
    try
            
    {
                Session session 
    = HibernateSessionFactory.getSession();
                Query query 
    = session.createSQLQuery(sql);
                count 
    = ((BigDecimal) query.uniqueResult()).intValue();
            }

            
    catch (RuntimeException re)
            
    {
                
    throw re;
            }

            
    return count;
        }

        
        
    /**
         * 
         * <p>
         * Description:[執行原生SQL,返回更改的條數]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 26, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @param sql
         * 
    @return
         
    */

        
    public int executeSQL(final String sql)
        
    {
            
    int updateCount = 0;
            
    try
            
    {
                Session session 
    = HibernateSessionFactory.getSession();
                Query query 
    = session.createSQLQuery(sql);
                updateCount 
    = query.executeUpdate();
            }

            
    catch (RuntimeException re)
            
    {
                
    throw re;
            }

            
    return updateCount;
        }

        
        
    /**
         * 
         * <p>
         * Description:[如果不是claz的實例,則拋出異常]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 26, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @param entity
         
    */

        
    private void isInstance(Object entity)
        
    {
            
    if (!this.claz.isInstance(entity))
            
    {
                
    /** 如果所傳的對象不是claz的實例,則拋出異常由上一級進行處理 */
                StringBuffer exceptionInfo 
    = new StringBuffer(512);
                exceptionInfo.append(
    "entity is not instance of ");
                exceptionInfo.append(
    this.claz.getName());
                exceptionInfo.trimToSize();
                
    throw new RuntimeException(exceptionInfo.toString());
            }

        }

        
        
    /**
         * 
         * <p>
         * Description:[本方法用于得到claz的名字]
         * </p>
         * <p>
         * Created by [Huyvanpull] [Jun 26, 2009]
         * </p>
         * <p>
         * Midified by [修改人] [修改時間]
         * </p>
         * 
         * 
    @return
         
    */

        
    private String getEntityClassName()
        
    {
            String name 
    = this.claz.getName();
            
    /** 得到類名 */
            
    return name.substring(name.lastIndexOf("."+ 1, name.length());
        }

    }


        DAO繼承該類,幾乎不用寫代碼了.
    posted on 2009-06-29 09:52 HUIKK 閱讀(598) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 成年女人毛片免费播放人| 岛国片在线免费观看| 亚洲日本精品一区二区| 黄页网站免费观看| 在线观看亚洲免费| 亚洲国产日韩在线视频| 国产92成人精品视频免费| 香港经典a毛片免费观看看| 日本亚洲国产一区二区三区| 91短视频免费在线观看| 老司机午夜免费视频| 亚洲成色999久久网站| 情侣视频精品免费的国产| 午夜影院免费观看| 国产AV日韩A∨亚洲AV电影| 亚洲爆乳无码专区| 日本xxwwxxww在线视频免费| 两个人日本免费完整版在线观看1| 91亚洲国产成人久久精品网站| 免费在线观看一级毛片| 亚洲免费在线视频观看| 中文字幕免费在线看线人动作大片| 亚洲二区在线视频| 亚洲一区二区在线视频| 国产亚洲av片在线观看18女人| 青青草国产免费久久久91| 狼群影院在线观看免费观看直播| 国产精品福利片免费看| 精品国产_亚洲人成在线| 亚洲人成777在线播放| 日韩精品亚洲人成在线观看| 亚洲色婷婷六月亚洲婷婷6月| 在线免费观看韩国a视频| 国产成人免费爽爽爽视频| 亚欧色视频在线观看免费| 国产va在线观看免费| 丁香花在线视频观看免费| 97在线免费观看视频| 成在线人视频免费视频 | 亚洲成a人片在线观看无码专区 | www.亚洲成在线|