BeanUtils的用法

舉例1:使用BeanUtils工具封裝用戶提交的數(shù)據(jù)腕窥。


public static void main(String[] args)throws Exception {

      // 模擬用戶的輸入的數(shù)據(jù)如下

      String name = "XML基礎(chǔ)";

      String author = "焦寧波";

      String price = "99.99";

      String date = "2013-01-04";

      Book book = new Book();

      // 任務(wù)是將以上的屬性設(shè)置給指定的Book對(duì)象

      BeanUtils.setProperty(book, "name", name);

      BeanUtils.setProperty(book, "author", author);

      BeanUtils.setProperty(book, "price",price );

      // 查看屬性是否封裝好

      System.out.println(book);

}

發(fā)現(xiàn)使用上面的代碼可以省略基本數(shù)據(jù)類型的轉(zhuǎn)型的問題。進(jìn)而提高代碼的開發(fā)效率。

舉例2:自定義一個(gè)類型轉(zhuǎn)換器類蚯撩。


public static void main(String[] args)throws Exception {

      // 模擬用戶的輸入的數(shù)據(jù)如下

      String name = "XML基礎(chǔ)";

      String author = "焦寧波";

      String price = "99.99";

      String date = "2013-01-04";



      Book book = new Book();



      // 注冊(cè)一個(gè)自己的轉(zhuǎn)換器

      /**

        * converter指定具體的轉(zhuǎn)換器

        * clazz遇到什么類型調(diào)用上面的轉(zhuǎn)換器

        */

      ConvertUtils.register(

              new Converter(){

              // 回調(diào)方法 

              @Override

              public Object convert(Class type, Object value) {

                  if(value == null){

                    return null;

                  }

                  // 轉(zhuǎn)換為String

                  String data = (String)value;

                  // 將指定格式的字符串轉(zhuǎn)換為Date

                  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

                  Date date  = null;

                  try {

                    date = format.parse(data);

                    return date;

                  } catch (ParseException e) {

                    e.printStackTrace();

                    return null;

                  }

              }

              },

              Date.class);

      // 任務(wù)是將以上的屬性設(shè)置給指定的Book對(duì)象

      BeanUtils.setProperty(book, "name", name);

      BeanUtils.setProperty(book, "author", author);

      BeanUtils.setProperty(book, "price",price );

      BeanUtils.setProperty(book, "date",date );

      // 查看屬性是否封裝好

      System.out.println(book);

}

如果每次遇到一個(gè)復(fù)雜類型都需要自定義轉(zhuǎn)換器顽素,那樣的話實(shí)在麻煩咽弦。大家看在開發(fā)的時(shí)候可以先查看該接口是否提供了有效的實(shí)現(xiàn)類。

ConvertUtils.register(new DateLocaleConverter(), Date.class);

其實(shí)真正的封裝好的數(shù)據(jù)需要存儲(chǔ)在數(shù)據(jù)庫(kù)中胁出,那么javabean的數(shù)據(jù)類型應(yīng)該和數(shù)據(jù)庫(kù)的數(shù)據(jù)類型保持一致型型,那么在聲明持久化javabean的時(shí)候需要全部為數(shù)據(jù)庫(kù)的基本數(shù)據(jù)類型。

因此大家在JavaBean中需要導(dǎo)入的是java.sql.Date類全蝶,這樣就直接可以將日期自動(dòng)轉(zhuǎn)換了闹蒜。

舉例3:實(shí)現(xiàn)封裝好的JavaBean對(duì)象的屬性拷貝。


// 實(shí)現(xiàn)屬性封裝數(shù)據(jù)的一個(gè)拷貝

Book copy = new Book();

System.out.println(copy);

PropertyUtils.copyProperties(copy, book);

System.out.println(copy);

思考:如果使用BeanUtils封裝用戶的數(shù)據(jù)抑淫,那么也就是一個(gè)一個(gè)設(shè)置氨谅洹?豈不是也很麻煩始苇?

其實(shí)在真是的環(huán)境中我們可以直接獲取用戶提交的所有的數(shù)據(jù)信息砌烁,只需要進(jìn)行遍歷即可,但是為了方便快速的設(shè)置催式,那么可以將javabean中的屬性名和用戶提交的數(shù)據(jù)名保持一致函喉。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市荣月,隨后出現(xiàn)的幾起案子函似,更是在濱河造成了極大的恐慌,老刑警劉巖喉童,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撇寞,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡堂氯,警方通過(guò)查閱死者的電腦和手機(jī)蔑担,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)咽白,“玉大人啤握,你說(shuō)我怎么就攤上這事【Э颍” “怎么了排抬?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)授段。 經(jīng)常有香客問我蹲蒲,道長(zhǎng),這世上最難降的妖魔是什么侵贵? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任届搁,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卡睦。我一直安慰自己宴胧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布表锻。 她就那樣靜靜地躺著恕齐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞬逊。 梳的紋絲不亂的頭發(fā)上显歧,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音码耐,去河邊找鬼追迟。 笑死溶其,一個(gè)胖子當(dāng)著我的面吹牛骚腥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓶逃,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼束铭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了厢绝?” 一聲冷哼從身側(cè)響起契沫,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎昔汉,沒想到半個(gè)月后懈万,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡靶病,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年会通,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娄周。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涕侈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出煤辨,到底是詐尸還是另有隱情裳涛,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布众辨,位于F島的核電站端三,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鹃彻。R本人自食惡果不足惜技肩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧虚婿,春花似錦旋奢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至剧浸,卻和暖如春锹引,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背唆香。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工嫌变, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人躬它。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓腾啥,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親冯吓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子倘待,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容