자바 Hibernate 상용 방법 패키지 도구 클래스

Hibernate 를 공부 할 때,삭제 와 검사 코드 가 너무 많이 중복 되 고 도구 류 로 귀결 되 어 인 코딩 효율 을 높 일 수 있 음 을 발견 하 였 다.
주로 이 검색 기능 을 추가 삭제 하기 때문에 두 가지 유형 으로 나 뉘 는데,방법 은 세 션 대상 의 조작 이 필요 하기 때문에 세 션 대상 을 열 고 세 션 대상 을 닫 는 방법 이 필요 하 다.(그 중에서 첨삭 방법 은 표지 유형 이 필요 하기 때문에 매 거 진 을 만들어 야 한다.구체 적 으로 다음 코드:
/**
*    
*/
/**
 *
 * @Package:  : HqlUtil
 * @Description:  :                
 *
 */
public enum HqlUtil {
    upd, //        
    del, //        
    add; //        
}
/**
*   
*/

import java.util.*;
import org.hibernate.*;
import org.hibernate.cfg.*;

/**
 *
 * @Package:  : TravelUtil
 * @Description:   :              
 * @date:   : 2015-5-16
 */
public class TravelUtil {

    
    /**
     *   session       Session
     */
    public Session opneSession() {
        return new Configuration().configure().buildSessionFactory()
                .openSession();
    }

    /**
     *        Session
     *   session       void
     */
    public void closeSession(Session sess) {
        if (sess != null) {
            sess.close();
        }
    }

    /**
     *         
     *
     * @param object
     *            :     inverse=false   
     * @param inverse
     *            =false(   )          
     * @param Enum control
     *                 ,    Control.upd,  Control.del,
     *               Control.add;
     * @      new TravelUtil().ControlHql(object, Control.add);
     */
    public int ControlHql(Object object, Enum control) {
        Session session = opneSession();
        Transaction tx = session.beginTransaction();
        int flg = -1;
        try {
            if(control.equals(HqlUtil.upd)){                
                session.update(object);
            } else if (control.equals(HqlUtil.del)) {
                session.delete(object);
            } else if (control.equals(HqlUtil.add)) {
                session.save(object);
            }
            flg = 1;
            tx.commit();
        } catch (HibernateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            flg = -1;
            tx.rollback();
        } finally {
            this.closeSession(session);

        }
        return flg;
    }

    /**
     *       List  
     *
     * @param object
     *             setProperties     
     * @param hql     
     * @return list  
     */
    public List getReadList(String hql, Object object) {
        Session session = opneSession();
        Query query = session.createQuery(hql).setProperties(object);
        List list = query.list();
        this.closeSession(session);
        return list;
    }
    /**
     *
     * @Title: getReadList
     * @Description:     ,    
     * @param @param nowPage
     * @param @param pageSize
     * @param @return     
     * @return List     
     * @throws
     */
    public List getReadList(Object object,String hql,int nowPage, int pageSize) {
        
         Session session=this.opneSession();        
         Query query = session.createQuery(hql).setProperties(object);
         query.setFirstResult(nowPage);
         query.setMaxResults(pageSize);
         List obje=query.list();
        
         return obje;
    }
    
    /**
     * @Title: getCont
     * @Description:    sql  
     * @param @param hql
     * @param @return     
     * @return int     
     * @throws
     */
    public int getCount(String hql){

        if(hql.indexOf("count")<=0){        
            System.out.println("             ");            
            return  -1;        
        };
        Session session=this.opneSession();
        Query query=session.createQuery(hql);
        Long li=(Long)query.uniqueResult();
        int flg=Integer.parseInt(li.toString());
        System.out.println(flg);        
        this.closeSession(session);
        return flg;
    }
    
    
}
    
    /**
     *
     * @Title: main
     * @Description:        
     * @param @param args     
     * @return void     
     * @throws
     */
    
    
public class Tests{
    public static void main(String[] args) {
        
        //  ---------------------       
         //1.                 
        int flg=new TravelUtil().getCount("select count(*) from Userinfo");        
        //2.            
        System.out.println(flg);
        
        
        System.out.println("    --  --          ,      ");
        //  ----------------------    
        //1.    getReadList
         List object= new TravelUtil().getReadList(new Object(),"from Userinfo",1, 15);
         //2.       
         for (Object object2 : object) {
            //  
             Userinfo userinfo=(Userinfo)object2;
             //     
             System.out.println(userinfo.getUsname());
        }
        
        
         System.out.println("              ,      ");
        //  ---------------------        
         List object3= new TravelUtil().getReadList("from Userinfo",new Object());
         for (Object object2 : object3) {
            //  
             Userinfo userinfo=(Userinfo)object2;
             //        
             System.out.println(userinfo.getUsname());
        }
        
         System.out.println("------        ,      -------");
         //        
        
         //1.                    
         Userinfo uid=new Userinfo();
         //     
         uid.setUsname("  ");
         uid.setUspass("1faf3aff");
        
       
         //2.      controlHql      (add)     
        int flgAdd= new TravelUtil().ControlHql(uid, HqlUtil.add);
       
        //3.            !
        System.out.println(flgAdd>0?"    !":"    !");
    }
}

좋은 웹페이지 즐겨찾기