亚洲女人被黑人巨大进入-亚洲日本视频在线观看-亚洲AV秘片一区二区三3-亚洲欧美中文字幕乱码在线

<dfn id="uqq4w"><dl id="uqq4w"></dl></dfn>
  • <abbr id="uqq4w"></abbr>
    <center id="uqq4w"><cite id="uqq4w"></cite></center>
    ?
    徐州北大青鳥
    當(dāng)前位置: 主頁 > 學(xué)在青鳥 > 編程技巧 >

    如何對多重唯一鍵入庫前檢查

    時(shí)間:2011-04-13 10:22來源:中博IT教育 作者:代碼如詩 點(diǎn)擊:
    在我們實(shí)際操作數(shù)據(jù)庫時(shí),有時(shí)在一個(gè)表中有多個(gè)唯一鍵,比如會(huì)員號(hào)及身份證號(hào)及其他標(biāo)識(shí),為了防止出現(xiàn)入庫錯(cuò)誤,在存入數(shù)據(jù)庫之前就要對數(shù)據(jù)進(jìn)行多重唯一鍵檢查

    在我們實(shí)際操作數(shù)據(jù)庫時(shí),有時(shí)在一個(gè)表中有多個(gè)唯一鍵,比如會(huì)員號(hào)及身份證號(hào)及其他標(biāo)識(shí),為了防止出現(xiàn)入庫錯(cuò)誤,在存入數(shù)據(jù)庫之前就要對數(shù)據(jù)
    進(jìn)行多重唯一鍵檢查,查看是否有重復(fù)數(shù)據(jù),參考代碼如下:

    /**
     * 檢查數(shù)據(jù)表中是否存在相同值的數(shù)據(jù)
     * @param <T>
     * @param em        EntityManager
     * @param entity    Entity 類
     * @param id        需要查詢的主鍵,新增時(shí)輸入 null
     * @param fields    需要檢查的字段名稱
     * @param values    需要檢查的字段的值
     * @return
     *     有重復(fù)數(shù)據(jù)時(shí)返回 true; 沒有重復(fù)數(shù)據(jù)時(shí)返回 false
     *
     * @代碼如詩 2010-2-20 下午02:12:34
     */
    @SuppressWarnings("unchecked")
    public static <T> boolean hasExistData(EntityManager em, Class<T> entity,
            Object id, String[] fields, Object[] values) {
        if(em == null || entity == null) {
            throw new IllegalArgumentException("EntityManager 與 Entity Class 兩個(gè)參數(shù)為空");
        }
        if(fields == null || values == null || fields.length == 0 || values.length == 0) {
            throw new IllegalArgumentException("字段數(shù)量或值數(shù)量不能為空");
        }
        if(fields.length != values.length) {
            throw new IllegalArgumentException("字段數(shù)量與值數(shù)量不一致");
        }
        StringBuffer buff = new StringBuffer();
        buff.append("SELECT t FROM ").append(entity.getSimpleName()).append(" t WHERE t.id <> :id ");
        for(int i = 0; i < fields.length; i++) {
            buff.append(" AND t.").append(fields[i]).append(" = :").append(fields[i]);
        }
        // System.out.println(buff.toString());
        Query q = em.createQuery(buff.toString());
        if(id != null) {
            q.setParameter("id", id);
        } else {
            q.setParameter("id", 0);
        }
        for(int i = 0; i < fields.length; i++) {
            q.setParameter(fields[i], values[i]);
        }
        List<T> list = q.getResultList();
        if(list == null || list.size() == 0) {
            return false;
        }
        return true;
    }

    試聽課
    (責(zé)任編輯:代碼如詩)
    ------分隔線----------------------------
    欄目列表
    推薦內(nèi)容