亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

利用Java Reflection(反射)原理,在hibernate里面實現對單表、視圖的動態組合查詢

2019-11-18 13:50:52
字體:
來源:轉載
供稿:網友

    Reflection 是 java 程序開發語言的特征之一,它答應運行中的程序對自身進行訪問,并能直接操作程序的內部屬性。



    Hibernate是一個面向Java環境的對象/關系數據庫映射工具,基本上,每個表或者視圖在hibernate里面都可以對應一個類,在此處,我們通過充分的利用這個類,來實現動態組合查詢。



首先我們一起來看看這個函數的源代碼:



    /**     * 組合查詢     * @param object 包含查詢條件的對象     * @param firstResult 第一個返回的位置(從0開始)     * @param maxResults 最大返回數     * @param orderField 排序的字段     * @param isAbs 是否正序排列     * @return     * @throws HibernateException     */    public List queryList(Object object, int firstResult, int maxResults,String orderField ,boolean isAsc) throws HibernateException,IllegalArgumentException,IllegalaccessException,InvocationTargetException {        List list=null;        Class c = object.getClass();        Method method[] = c.getMethods();        try {            session session = currentSession();            Criteria criteria = session.createCriteria(object.getClass());            for (int i = 0; i < method.length; i++) {                String name = method[i].getName();                if(name.indexOf("getMin")==0){    //大于                    String fieldName = name.substring(6, 7).toLowerCase() + name.substring(7);                    Object retObj = method[i].invoke(object, null);                    if (retObj != null && !retObj.equals(""))                         criteria.add(EXPRession.ge(fieldName, retObj));                    continue;                }                if(name.indexOf("getMax")==0){//小于                    String fieldName = name.substring(6, 7).toLowerCase() + name.substring(7);                    Object retObj = method[i].invoke(object, null);                    if (retObj != null && !retObj.equals(""))                         criteria.add(Expression.le(fieldName, retObj));                    continue;                }                if (name.indexOf("get") != 0 name.indexOf("getClass") == 0)  //假如不是需要的方法,跳出                    continue;                String fieldName = name.substring(3, 4).toLowerCase() + name.substring(4);                String returnType = method[i].getReturnType().toString();                Object retObj = method[i].invoke(object, null);                if (retObj != null) {     //假如為null,沒有賦值,跳出                    if (returnType.indexOf("String") != -1){                        if(retObj.equals(""))     //假如為""的String字段,跳出                           continue;                        criteria.add(Expression.like(fieldName, "%" + retObj + "%"));   //對String的字段,使用like模糊查詢                    }else                        criteria.add(Expression.like(fieldName, retObj));                   }            }            if(isAsc)                criteria.addOrder(Order.asc(orderField));    //升序            else                criteria.addOrder(Order.desc(orderField));    //降序            criteria.setFirstResult(firstResult);            criteria.setMaxResults(maxResults);            list = criteria.list();        } finally {            closeSession();        }



        return list;    }



   假設關系數據庫里面有一個物理表,其結構如下:



STAFF(員工表) 



列名



類型



Null



說明



Id(pk)



VARCHAR2(20)



NOT NULL



員工工號



name



VARCHAR2(20)



NOT NULL



員工姓名



Dept



INTEGER



NULL



員工所屬部門(p3)



PassWord



VARCHAR2(20)



NOT NULL



密碼



Post

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
丁香五六月婷婷久久激情| 欧美影院成年免费版| 亚洲欧美制服丝袜| 日韩视频免费在线观看| 国产在线视频2019最新视频| 国产精品中文久久久久久久| 国产精品成人国产乱一区| 久久久久久久久久久免费精品| 久久久中文字幕| 国产精品久久久久av| 久国内精品在线| 精品视频在线播放色网色视频| 国产一区二区在线免费| 在线免费观看羞羞视频一区二区| 欧美人在线观看| 色噜噜亚洲精品中文字幕| 亚洲最新av网址| 久久久精品美女| 日韩美女中文字幕| 97视频在线观看亚洲| 欧美一级视频在线观看| 日韩视频在线免费观看| 九九热这里只有精品免费看| 91色琪琪电影亚洲精品久久| 亚洲福利视频在线| 亚洲视频一区二区| 538国产精品视频一区二区| 亚洲激情 国产| 亚洲欧美在线第一页| 国产精品黄色影片导航在线观看| 亚洲欧美国产精品| 国产视频精品在线| 精品久久久久久中文字幕一区奶水| 日本亚洲欧美成人| 国产一区二区三区18| 亚洲欧美日韩久久久久久| 欧美极品少妇xxxxⅹ免费视频| 国内精品久久久久伊人av| 91久久久在线| 国产在线观看不卡| 日韩专区中文字幕| 国产成人av在线播放| 欧美成人免费va影院高清| 亚洲精品视频在线观看视频| 91高清视频免费| 清纯唯美亚洲激情| 国产精自产拍久久久久久蜜| 91精品一区二区| 国产精品久久久久国产a级| 97在线视频免费观看| 亚洲人成电影网站| 91亚洲精品久久久久久久久久久久| 66m—66摸成人免费视频| 欧美成人亚洲成人日韩成人| 成人xxxxx| 欧美成人国产va精品日本一级| 欧美精品video| 久久免费视频观看| 亚洲精品suv精品一区二区| 欧美国产欧美亚洲国产日韩mv天天看完整| 色中色综合影院手机版在线观看| 亚洲精品自拍第一页| 欧美人在线视频| 26uuu另类亚洲欧美日本老年| 国产精品久久久久免费a∨| 亚洲精品成人网| 欧美xxxx18性欧美| 在线不卡国产精品| 大胆欧美人体视频| 日韩在线视频二区| 韩国三级日本三级少妇99| 91国产视频在线| 欧美日韩激情小视频| 国产日韩精品电影| 久久资源免费视频| 成人美女免费网站视频| 国产97在线观看| 性亚洲最疯狂xxxx高清| 日韩中文字幕精品视频| 久久九九有精品国产23| 成人在线国产精品| 欧美三级免费观看| 久久亚洲精品国产亚洲老地址| 中文字幕久热精品视频在线| 亲子乱一区二区三区电影| 欧美片一区二区三区| 国产精品日韩久久久久| 亚洲字幕在线观看| 国产精品一香蕉国产线看观看| 国产精品88a∨| 欧美一乱一性一交一视频| 日韩免费电影在线观看| 亚洲aa中文字幕| 日韩精品极品视频免费观看| 一二美女精品欧洲| 亚洲伊人第一页| 亚洲在线免费视频| 国产成人一区二区三区电影| 欧美电影免费观看大全| 成人福利视频在线观看| 伦伦影院午夜日韩欧美限制| 精品久久久久久久大神国产| 26uuu久久噜噜噜噜| 亚洲精品v天堂中文字幕| 亚洲а∨天堂久久精品喷水| 欧美理论在线观看| 日韩专区在线播放| 69久久夜色精品国产7777| 久久精品国产成人| 国产精品午夜国产小视频| xxav国产精品美女主播| 国内精品久久久久久中文字幕| 亚洲精品456在线播放狼人| 亚洲成人激情小说| 亚洲国产日韩精品在线| 91精品国产91久久久久久吃药| 亚洲iv一区二区三区| 一本色道久久综合狠狠躁篇怎么玩| 日韩成人av一区| 欧美激情视频一区二区三区不卡| 国产精品视频白浆免费视频| 欧美另类在线播放| 97国产精品视频| 欧美电影免费观看大全| 亚洲欧美国产精品专区久久| 亚洲激情视频在线观看| 国产亚洲欧美aaaa| 欧美一区深夜视频| 成人免费大片黄在线播放| 欧洲成人性视频| 国产精品高潮视频| 亚洲精品国产美女| 欧美大片在线看| 色综合色综合久久综合频道88| 日韩中文字幕在线精品| 欧美成人手机在线| 亚洲成人中文字幕| 精品呦交小u女在线| 亚洲综合在线中文字幕| 亚洲三级av在线| 亚洲伦理中文字幕| 韩日欧美一区二区| 日韩亚洲欧美中文在线| 国产精品v日韩精品| 91精品视频在线播放| 精品亚洲国产成av人片传媒| 成人网欧美在线视频| 中文字幕在线看视频国产欧美在线看完整| 久久久久久亚洲精品| 国产91色在线|| 久久久人成影片一区二区三区| 欧美中文字幕在线观看| 亚洲欧美国产精品专区久久| 6080yy精品一区二区三区| 国产91对白在线播放| 国产精品夜间视频香蕉| 成人在线视频网站| 中文字幕精品av| 久久99精品久久久久久琪琪| 亚洲最大福利视频网| 国产91九色视频| 国产成人久久久精品一区| 久久黄色av网站| 国产精品美女久久久久av超清|