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

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

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

    posts - 66,  comments - 11,  trackbacks - 0
    package com.wyq.hibernate;

    import java.io.Serializable;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Types;
    import java.util.ArrayList;
    import java.util.List;

    import org.hibernate.Hibernate;
    import org.hibernate.HibernateException;
    import org.hibernate.usertype.UserType;

    public class EMailList implements UserType {
        
        
    private List emails;
        
        
    private static final char SPLITTER = ';';
        
        
    private static final int[] TYPES = new int[]{Types.VARCHAR};

        
    public boolean isMutable() {
            
    return false;
        }
        
    public int[] sqlTypes() {
            
    return TYPES;
        }
        
    public Class returnedClass() {
            
    return List.class;
        }
        
    /**
         * 創建一個新的List實例,包含原有List實例中的所有元素。
         
    */
        
    public Object deepCopy(Object value) throws HibernateException {
            List sourcelist 
    = (List)value;
            List targetlist 
    = new ArrayList();
            targetlist.addAll(sourcelist);
            
    return targetlist;
        }
        
    /**
         * 判斷email list是否發生改變
         
    */
        
    public boolean equals(Object x, Object y) throws HibernateException {
            
    if(x == y)return true;
            
    if(x!=null && y!=null){
                List xList 
    = (List)x;
                List yList 
    = (List)y;
                
                
    if(xList.size() != yList.size())return false;
                
    for(int i=0;i<xList.size();i++){
                    String str1 
    = (String)xList.get(i);
                    String str2 
    = (String)yList.get(i);
                    
    if(!str1.equals(str2))return false;
                }
                
    return true;
            }
            
    return false;
        }
        
    /**
         * 從resultSet中取出email字段,并將其解析為List類型后返回
         
    */
        
    public Object nullSafeGet(ResultSet rs, String[] names, Object owner)
            
    throws HibernateException, SQLException {
            String value 
    = (String)Hibernate.STRING.nullSafeGet(rs,names[0]);
            
    if(value!=null){
                
    return parse(value);
            }
    else{
                
    return null;
            }
        }
        
    /**
         * 將List型的email信息組成字符串后保存到email字段
         
    */
        
    public void nullSafeSet(PreparedStatement st, Object value, int index)
            
    throws HibernateException, SQLException {
            System.out.println(
    "Set method executed");
            
    if(value!=null){
                String str 
    = "";//assemble((List)value);
                Hibernate.STRING.nullSafeSet(st, str, index);
            }
    else{
                Hibernate.STRING.nullSafeSet(st, value, index);
            }
        }
        
    /**
         * 將String拼裝為一個字符串,以";"分隔
         
    */
        
    private String assemble(List emailList){
            StringBuffer strBuf 
    = new StringBuffer();
            
    for(int i=0;i<emailList.size()-1;i++){
                strBuf.append(emailList.get(i)).append(SPLITTER);
            }
            strBuf.append(emailList.get(emailList.size()
    -1));
            
    return strBuf.toString();
        }
        
    /**
         * 將以";"分隔的字符串解析為一個字符串數組
         
    */
        
    private List parse(String value){
            String[] strs 
    = org.apache.commons.lang.StringUtils.split(value,String.valueOf(SPLITTER));
            List emailList 
    = new ArrayList();
            
    for(int i=0;i<strs.length;i++){
                emailList.add(strs[i]);
            }
            
    return emailList;
        }
        
    public Object assemble(Serializable arg0, Object arg1)
                
    throws HibernateException {
            
    // TODO Auto-generated method stub
            return null;
        }

        

        
    public Serializable disassemble(Object arg0) throws HibernateException {
            
    // TODO Auto-generated method stub
            return null;
        }

        

        
    public int hashCode(Object arg0) throws HibernateException {
            
    // TODO Auto-generated method stub
            return 0;
        }
        
    public Object replace(Object arg0, Object arg1, Object arg2)
                
    throws HibernateException {
            
    // TODO Auto-generated method stub
            return null;
        }

        

    }

    posted on 2009-10-16 16:57 王永慶 閱讀(162) 評論(0)  編輯  收藏 所屬分類: HIBERNATE
    <2009年10月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    關注blogs

    搜索

    •  

    最新評論

    • 1.?re: 心中的那個她[未登錄]
    • 如果心情能那么容易放開就好了,碰到她是我的緣分,但是她的緣分不知道在哪里。
    • --王永慶
    • 2.?re: 心中的那個她[未登錄]
    • 兄弟,喜歡就大膽去追好了,就是因為喜歡才會有不愉快,如果想一輩子沒有這些煩惱,找一個可有可無的人就好了。這種事講的是緣分吧。別人對你好不好其實不太重要。放開心情就好了。
    • --萍水相逢
    • 3.?re: 心中的那個她
    • 只能同甘不能共苦,就他媽算了吧,程序員也是人??!我現在也很討厭女的不理解人情。
    • --咖啡妝
    • 4.?re: 難以割舍的那份情感
    • 評論內容較長,點擊標題查看
    • --王永慶
    • 5.?re: 難以割舍的那份情感
    • 評論內容較長,點擊標題查看
    • --隔葉黃鶯

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 黄色大片免费网站| 亚洲av无码成人影院一区| 亚洲男人的天堂一区二区| 国产亚洲av片在线观看18女人 | 亚洲国产精品成人综合色在线婷婷| 国产亚洲av片在线观看18女人| 久久亚洲AV成人无码软件| 国内成人精品亚洲日本语音| 国产免费网站看v片在线| 久久免费区一区二区三波多野| 大地影院MV在线观看视频免费 | 久久亚洲一区二区| 美国免费高清一级毛片| 免费A级毛片在线播放不收费| 蜜芽亚洲av无码精品色午夜| 久久水蜜桃亚洲AV无码精品| 免费v片在线观看品善网| 亚洲熟妇av一区二区三区下载| 国产精品综合专区中文字幕免费播放| 国产精品久久免费| 亚洲国产精品无码第一区二区三区| 久久午夜无码免费| 亚洲娇小性xxxx色| 精品熟女少妇av免费久久| 亚洲综合无码精品一区二区三区| 亚洲国产精品无码久久久秋霞1| 国产无遮挡吃胸膜奶免费看视频| 亚洲?V无码乱码国产精品| 亚洲1234区乱码| 又粗又大又猛又爽免费视频| 9i9精品国产免费久久| 亚洲高清最新av网站| 免费精品一区二区三区第35| 亚洲人成电影在线观看青青| 免费女人18毛片a级毛片视频| 97超高清在线观看免费视频| 中文字幕精品亚洲无线码一区| 日韩内射激情视频在线播放免费| 亚洲午夜久久久久久噜噜噜| 亚洲免费日韩无码系列| 亚洲日韩在线观看|