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

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

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

    狂奔 lion

    自強不息

    如何應用Hibernate在運行期獲取屬性的值

    Hibernate根據配置文件從數據庫中把關系型的數據以對象的形式挖掘出來,那么假如我有一個Table控件,可以放置展現任何的表結構,如何在運行期做到把數據載入呢?Hibernate已經把數據讀成對象的形式,就注定沒有JDBC一般靈活,為次可以通過編寫如下的兩個工具方法來實現:
    import java.lang.reflect.Method;

    /**
     * 獲取指定bean的指定字段的值
     
    */
    public class BeanUtils {
        
    private BeanUtils(){}
        
        
    /**
         * 根據beanName和列名字獲取hql語句
         * 
    @param beanName
         * 
    @param columnNames
         * 
    @return 以list形式返回數據的hql語句
         
    */
        
    public static String getHql(String beanName, String[] columnNames){
            StringBuffer sb 
    = new StringBuffer();
            sb.append(
    "select new list(");
            StringBuffer columnString 
    = new StringBuffer();
            
    for(int i=0,len=columnNames.length;i<len;i++){
                columnString.append(
    ",");
                columnString.append(columnNames[i]);
            }
            sb.append(columnString.substring(
    1));
            sb.append(
    ") from ");
            
    if(Character.isUpperCase(beanName.charAt(0)))
                sb.append(beanName);
            
    else
                sb.append(upperFirstChar(beanName));
            
    return sb.toString();
        }
        
    /**
         * 
    @param bean 獲取到的域對象
         * 
    @param fieldName 欲獲取值的字段名
         * 
    @return 字段在當前bean封裝下的值
         
    */
        
    public static Object getFieldByName(Object bean, String fieldName){
            
    try {
                Method m 
    = bean.getClass().getMethod("get"+upperFirstChar(fieldName), null);
                
    return m.invoke(bean, null);
            } 
    catch (Exception e) {
                e.printStackTrace();
            }
            
    return null;
        }
        
    private static String upperFirstChar(String orig){
            
    return Character.toUpperCase(orig.charAt(0)) + orig.substring(1);
        }
    }
    按照已經處理后,我們就可以既應用Hibernate對象訪問的優點,又不損失字符串的靈活性,代碼中應用了Hibernate的select特性及java的反射機制


     @2008 楊一. 版權所有. 保留所有權利

    posted on 2006-08-04 13:39 楊一 閱讀(513) 評論(0)  編輯  收藏 所屬分類: Java EE

    <2006年8月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    公告

    本人在blogjava上發表的文章及隨筆除特別聲明外均為原創或翻譯,作品受知識產權法保護并被授權遵從 知識分享協議:署名-非商業性使用-相同方式共享 歡迎轉載,請在轉載時注明作者姓名(楊一)及出處(www.tkk7.com/yangyi)
    /////////////////////////////////////////
    我的訪問者

    常用鏈接

    留言簿(5)

    隨筆分類(55)

    隨筆檔案(55)

    相冊

    Java

    其他技術

    生活

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    自強不息


    用心 - 珍惜時間,勇于創造
    主站蜘蛛池模板: 无码国产亚洲日韩国精品视频一区二区三区 | 亚洲精品老司机在线观看| 亚洲视频无码高清在线| h视频在线免费看| 亚洲国产精品yw在线观看| 91热成人精品国产免费| 亚洲成av人片在线看片| 在线看片免费不卡人成视频| 亚洲天堂2016| 国产成人青青热久免费精品| 美女羞羞喷液视频免费| 免费国产综合视频在线看| 新最免费影视大全在线播放| 亚洲一级特黄大片在线观看| 免费毛片在线看不用播放器| 亚洲黄色在线视频| 97人伦色伦成人免费视频| 看免费毛片天天看| 亚洲综合av永久无码精品一区二区| 在线看片免费人成视频久网下载| 国产AV无码专区亚洲精品| 最好看最新的中文字幕免费| 亚洲最大的黄色网| 亚洲国产91精品无码专区| 老司机精品免费视频| 中文字幕亚洲免费无线观看日本| 福利免费观看午夜体检区| 美女视频黄a视频全免费网站色| 国产成人麻豆亚洲综合无码精品| 午夜免费福利小电影| 亚洲精品国产suv一区88| 亚洲熟妇少妇任你躁在线观看无码| 久草免费福利资源站| 亚洲一级特黄特黄的大片| 亚洲第一页日韩专区| 无码专区AAAAAA免费视频| 亚洲国产成人精品无码区花野真一| 国产精品亚洲精品日韩已方 | 九九全国免费视频| 久久亚洲AV成人出白浆无码国产| 四虎成人免费大片在线|