闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;闁绘劗鍎ら崑瀣煟濡崵婀介柍褜鍏涚欢姘嚕閹绢喖顫呴柣妯荤垹閸ャ劎鍘遍柣蹇曞仜婢т粙鎮¢姘肩唵閻熸瑥瀚粈鈧梺瀹狀潐閸ㄥ潡銆佸▎鎴犵<闁规儳澧庣粣妤呮⒒娴e憡鍟炴い顓炴瀹曟﹢鏁愰崱娆屽亾濞差亝鍊垫鐐茬仢閸旀碍绻涢懠顒€鈻堢€规洘鍨块獮姗€鎳滈棃娑欑€梻浣告啞濞诧箓宕滃☉鈶哄洭顢橀悢铏圭槇闂佸啿鐨濋崑鎾绘煕閺囩偟浠涢柣銈勭铻栭柣姗€娼ф禒婊勪繆椤愶絿绠撴い鏇秮椤㈡岸鍩€椤掆偓閻g兘鎮℃惔顔惧數濡炪倕绻嬮悞锕€鈻嶆繝鍥ㄧ厵妞ゆ梻鐡斿▓婊堟煛娴g懓濮堥柟顖涙煥閳规垿宕煎┑鍡樼槗闂備浇顕уù鐑藉箠閹捐绠熼柨娑樺瀹曟煡鏌涢弴銊ュ箺妞ゎ偅娲熼弻鐔兼倻濡闉嶇紓鍌氱Т濞差參寮婚弴鐔虹闁割煈鍠栨慨銏ゆ⒑閼姐倕鏋傞柛鏂跨焸閳ユ棃宕橀鍢壯囧箹缁厜鍋撻懠顒€鍤紓鍌氬€风欢锟犲窗濡ゅ懎绠伴柟闂寸劍閸嬧晠鏌i幋锝嗩棄缁绢厸鍋撻梻浣虹帛閸旀洜绮旈崼鏇炵獥闁哄稁鍘肩粻鏍ㄧ箾閸℃ɑ灏紒鐙呯稻缁绘繈妫冨☉娆愭倷濡炪倧鑵归弲鐘差潖濞差亜绠柤鎭掑劜閺嗙娀姊洪幖鐐插婵犫偓閸楃倣锝夊箛閺夎法顔掗柣搴㈢⊕閿氭い搴㈡尰缁绘繂鈻撻崹顔界亶闂佺硶鏅涢悧濠勭矉瀹ュ應鏀介悗锝庝簽閻ゅ嫰姊洪棃娴ュ牓寮插☉銏″€峰┑鐘叉处閻撳繐鈹戦悙鑼虎闁逞屽墯椤ㄥ牏鍒掔拠宸僵妞ゆ帒顦扮€靛矂姊洪棃娑氬婵☆偅绋掗弲鍫曨敆閸曨剛鍘介梺鍝勫暞閸ㄥ灚鏅堕幘顔界厽闁瑰灝鍟晶瀛樸亜閵忊槅娈滅€规洘甯掕灃闁逞屽墯缁傚秵銈i崘鈺佷画濠电偛妫楃换鎰邦敂椤忓棛妫柣鎰靛墯閸婃劙鏌$仦鍓р姇闁诡垱妫冮弫鎰板幢濡崵妲楅梺璇插椤旀牠宕抽鈧畷鎴炵節閸モ晛绁﹀┑鈽嗗灥閸嬫劗澹曢崗闂寸箚妞ゆ牗绮庣敮娑欍亜韫囨洖鏋涙慨濠勭帛閹峰懘鎳為妷褋鈧﹪姊洪棃鈺冪Ф缂佺姵鎹囬悰顔跨疀濞戞瑦娅㈤梺璺ㄥ櫐閹凤拷婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻娑樷槈濮楀牊鏁鹃梺鍛婄懃缁绘﹢寮婚敐澶婄闁挎繂妫Λ鍕⒑閸濆嫷鍎庣紒鑸靛哺瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈嗐亜椤撶姴鍘寸€殿喖顭烽弫鎰緞婵犲嫮鏉告俊鐐€栫敮濠囨倿閿曞倸纾块柟鎯у绾捐棄霉閿濆懏鎯堢亸蹇涙⒑閸涘⿴娈曞┑鐐诧工椤曪絾绻濆顓炰簻闂佺ǹ绻愰惃鐑藉箯婵犳碍鐓熼幖娣妽濞懷冾熆閻熷府宸ラ崡杈ㄣ亜閺傚灝鈷旂痪鎹愭闇夐柨婵嗘噺閹牓宕幖浣光拺闁告縿鍎辨牎闂佺粯顨堟慨鎾敋閿濆棛绡€婵﹩鍎甸埡鍛厓闁告繂瀚埀顒€鎲$粋宥呪堪閸啿鎷洪梺鍛婄☉閿曪妇绮婚幘缁樺€垫慨姗嗗墯閸ゅ洤鈹戦鐟颁壕闂備線娼ч悧鍡椢涘☉銏犲偍闂侇剙绉甸埛鎴︽⒒閸喕鍎愮憸鐗堝笒绾惧潡姊洪鈧粔鎾倿閸偁浜滈柟鍝勬娴滄儳鈹戦悩顐壕闂備緡鍓欑粔瀵哥不閺屻儲鐓忛煫鍥ㄦ礀琚ュ┑鈩冨絻閻楁捇寮婚弴锛勭杸闁哄洨鍊姀銈嗙厾闁哄娉曟禒銏ゆ煃鐟欏嫬鐏撮柛鈹垮劦瀹曞崬螖閸愌勬▕濠碉紕鍋戦崐鏍р枖閿曞倸鐐婃い顓熷灦椤ュ鏌f惔锛勭暛闁稿酣浜惰棟濞村吋娼欓悡鏇㈡煙鐎电ǹ啸缁炬儳銈搁幃妤呮晲鎼粹€茶埅闂佺ǹ绨洪崕鐢稿蓟濞戞瑦鍎熼柕蹇曞Т椤海绱撴担浠嬪摵閻㈩垳鍋ら獮蹇涙偐鐠囪尙顔岄梺鍦劋閹稿顢欓幒鎴旀斀闁绘ɑ顔栭弳婊呯磼鏉堛劍绀嬬€殿噮鍋嗛幏鐘绘嚑椤掍焦顔曢梻浣虹帛濮婂鍩涢崼銉ユ瀬鐎广儱妫欓崣蹇斾繆椤栨哎浠掗柛姘煎亰閺屸剝寰勭€n偄鈧劖鎱ㄦ繝鍕笡闁瑰嘲鎳樺畷顐﹀Ψ閿旈敮鍋撻灏栨斀闁斥晛鍟ㄦ禒鐘绘煕閺傚潡鍙勬鐐茬箳閳ь剨缍嗛崰鏍嫅閻斿吋鐓忓璺虹墕閸斻倝鏌ㄥ☉娆戞创婵﹨娅i幉鎾礋椤愩値妲版俊鐐€栧▔锕傚炊瑜忛ˇ銊╂⒑闁偛鑻晶鎾煙椤旂厧妲绘顏冨嵆瀹曟﹢鎮欓鑺ョ€伴梺璇插椤旀牠宕板Δ鍛畺闁稿本鍑归崵鏇熴亜閺囨浜鹃悗瑙勬礀閵堟悂骞冮姀銈呬紶闁告洦鍋呮潏鍫ユ⒒閸屾艾鈧兘鎳楅崜浣稿灊妞ゆ牗顕㈠ú顏勫唨妞ゆ挾鍋熼敍娆撴⒑闂堚晛鐦滈柛妯绘倐瀹曟垿骞橀幇浣瑰兊闂佺粯鍔﹂崜娆擃敂閿燂拷
开发学院软件开发Java EnterpriseJavaBeans导论四 阅读

EnterpriseJavaBeans导论四

 2007-12-23 12:27:29 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨绘い鎺嬪灪閵囧嫰骞囬姣挎捇鏌熸笟鍨妞ゎ偅绮撳畷鍗炍旈埀顒勭嵁婵犲嫮纾介柛灞捐壘閳ь剛鎳撻~婵嬪Ω閳轰胶鐤呯紓浣割儐椤戞瑩宕ョ€n喗鐓曟い鎰靛亝缁舵氨绱撻崘鈺傜婵﹤顭峰畷鎺戔枎閹搭厽袦婵犵數濮崑鎾绘⒑椤掆偓缁夌敻骞嗛悙鍝勭婵烇綆鍓欐俊鑲╃磼閹邦収娈滈柡灞糕偓鎰佸悑閹肩补鈧尙鏁栧┑鐐村灦閹稿摜绮旈悽绋课﹂柛鏇ㄥ灠閸愨偓濡炪倖鍔﹀鈧繛宀婁邯濮婅櫣绱掑Ο璇茶敿闂佺ǹ娴烽弫璇差嚕婵犳碍鏅插璺猴工瀹撳棝姊虹紒妯哄缂佷焦鎸冲畷鎴﹀箻鐠囧弶宓嶅銈嗘尰缁嬫垶绂嶉悙顒佸弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒佸仺缂佸瀵ч悗顒勬⒑閻熸澘鈷旂紒顕呭灦瀹曟垿骞囬悧鍫㈠幍缂傚倷鐒﹂敋缂佹う鍥ㄧ厓鐟滄粓宕滈敃鍌氱煑闁告劦鐓堝ḿ鏍煕濠靛棗鐝旂憸鏂跨暦閹偊妲炬繛瀵稿Т閵堢ǹ顫忛搹瑙勫珰闁肩⒈鍓涢澶愭⒑閻撳海绉虹紒鐘崇墵楠炲啯銈i崘鈺佲偓濠氭煢濡警妲奸柟鑺ユ礋濮婃椽妫冨☉杈€嗘繝纰樷偓铏枠鐎规洏鍨介幃浠嬪川婵炵偓瀚奸梺鑽ゅ枑閻熴儳鈧氨鍏樺畷顖濈疀濞戞瑧鍘遍梺缁樏壕顓熸櫠閻㈠憡鐓忛柛鈩冾殔閳ь剙婀辩紓鎾寸鐎n亜绐涙繝鐢靛Т鐎氼剟鐛崼銉︹拺缁绢厼鎳庨ˉ宥夋煙濞茶绨芥俊鍙夊姍瀵挳鎮㈤崫鍕ㄥ彏闂傚倸鍊搁崐椋庢濮橆兗缂氱憸宥囧弲闂侀潧鐗嗗ú鐘诲磻閹炬剚娼╂い鎰╁灩缁侇噣姊虹紒妯圭繁闁革綇缍侀悰顕€骞掗幊铏閸┾偓妞ゆ帒鍊绘稉宥夋煥濠靛棙顥犵紒鈾€鍋撻梻鍌氬€搁悧濠勭矙閹达箑姹叉繛鍡楃贩閻熸壋鍫柛顐犲灮閺嗩偊姊洪崫鍕効缂傚秳鐒﹂幈銊╁焵椤掑嫭鐓冮柟顖滃绾偓绻濋埀顒佹綇閵娧呭骄闂佸搫娲ㄩ崰鎾跺姬閳ь剙鈹戦鏂や緵闁告﹢绠栧畷銏ゆ偨閸涘ň鎷虹紓鍌欑劍閿氬┑顕嗙畵閺屾盯骞橀弶鎴濇懙闂佽鍠楄摫婵炵厧绻樻俊鎼佸Χ閸モ晝鏆伴梻鍌欑濠€杈╁垝椤栨粍鏆滈柣鎰摠濞呯姵绻涢幋鐐寸殤缁炬崘鍋愮槐鎾存媴鐠愵垳绱板┑鐐村絻椤曨參鍩€椤掑喚娼愭繛鍙夌墪閻g兘顢楅崘顏冪胺闂傚倷绀侀幉锟犲礉閺囥垹鐤柣妯款嚙缁€鍫熺節闂堟稓澧涚€规洖寮剁换娑㈠箣閻愩劎绱伴梺鍝勬濡鍩為幋锔藉亹閺夊牜鍋勯崢锟犳⒑鏉炴壆鍔嶉柣妤佺矌濡叉劙骞樼€涙ê顎撴繛瀵稿Т椤戝懘骞楅悽鍛娾拺闁革富鍘介崵鈧┑鐐茬湴閸婃繈骞冩ィ鍐╁€婚柦妯侯槺椤斿﹪姊虹憴鍕剹闁告ü绮欏畷鎾绘偨閸涘ň鎷洪梺鑽ゅ枑濠㈡﹢骞冩笟鈧弻锝夊箳閻愮數鏆ら梺璇″枟椤ㄥ﹪鐛弽銊﹀闁稿繐顦扮€氳棄鈹戦悙鑸靛涧缂佹彃娼″畷鏇㈠Χ婢跺﹤鎯為梺閫炲苯澧存慨濠冩そ楠炴牠鎮欏ù瀣壕闁哄稁鍘介崑瀣煟濡灝鍚圭€规挷绶氶悡顐﹀炊閵娧€濮囬梺鍝勬噺閹倿寮婚妸鈺傚亞闁稿本绋戦锟�濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌涘☉姗堟敾闁告瑥绻橀弻锝夊箣閿濆棭妫勯梺鍝勵儎缁舵岸寮诲☉妯锋婵鐗婇弫楣冩⒑閸涘﹦鎳冪紒缁樺灴婵$敻宕熼姘鳖啋闂佸憡顨堥崑鐔哥閼测晝纾藉ù锝呮惈椤庡矂鏌涢妸銉у煟鐎殿喛顕ч埥澶愬閻樼數鏉搁梻鍌氬€搁悧濠勭矙閹烘鍊堕柛顐犲劜閸婄敻鏌i悢鍝勵暭闁哥喓鍋熺槐鎺旀嫚閹绘帗娈绘繝纰夌磿閺佽鐣烽悢纰辨晬婵﹢纭搁崯瀣⒑鐠囨煡鍙勬繛浣冲洤绠烘繝濠傜墛閸嬧晛鈹戦崒姘暈闁抽攱鍨归惀顏堫敇閻愭潙顎涘┑鐐插悑閸旀牜鎹㈠☉銏″殤妞ゆ巻鍋撻柡瀣閵囧嫰顢曢姀銏㈩唺缂備浇椴哥敮鎺曠亽闂佸吋绁撮弲婊堝吹瀹€鍕拻濞撴埃鍋撻柍褜鍓涢崑娑㈡嚐椤栨稒娅犳い鏃囧亹閺嗗棝鏌ㄥ┑鍡欏闁告柨鐏氶妵鍕晜閻e苯寮ㄩ梺璇″櫙缁绘繃淇婇懜闈涚窞閻庯綆鍓欑敮楣冩⒒娴gǹ顥忛柛瀣噽閹广垽宕橀鑲╋紱濡炪倕绻愰幊鎰不閸撗€鍋撻悷鏉款棌闁哥姵娲滈懞杈ㄧ節濮橆剛鐣鹃梺缁樻煥閸氬鍩涢幋锔藉€甸柛锔诲幖鏍¢梺闈涙閸熸挳寮婚妶澶婄闁肩⒈鍓欓悡鐔兼倵鐟欏嫭绀冪紒璇茬墦瀵偊宕橀鑲╁姦濡炪倖甯掔€氀囧焵椤掍焦顥堢€规洘锕㈤、娆撳床婢诡垰娲﹂悡鏇㈡煃閳轰礁鏋ゆ繛鍫燂耿閺岋綁鎮㈢粙鍨潚濠殿喖锕ュ浠嬪箖閳╁啯鍎熼柍鈺佸暞閻︼綁姊绘担铏瑰笡闁绘娲熸俊鍓佺矙鐠恒劍娈鹃梺缁樺灦宀h法寮ч埀顒勬⒑閹肩偛鍔€闁告劑鍔庨妶顕€姊婚崒娆戠獢婵炰匠鍕垫闊洦娲橀~鏇㈡煛閸ャ儱鐏╅柛灞诲妽閵囧嫯绠涢幘璺侯杸闂佹娊鏀遍崹鍧楀蓟閻斿吋鍤冮柍杞版缁爼姊洪崨濠冣拹妞ゃ劌锕濠氭晸閻樻彃绐涘銈嗘閺侇喗鎱ㄩ崶鈺冪=濞达絿枪閳ь剙婀遍弫顕€鎮㈡俊鎾虫川閳ь剟娼ч幗婊呭婵傜ǹ绾ч柛顐g☉婵¤偐绱掑Δ浣侯暡缂佺粯鐩幃鈩冩償閿濆浂鍟嬮梻浣虹《閺備線宕滃┑瀣闁告稑鐡ㄩ悡銉╂倵閿濆懐浠涚紓宥嗩殜濮婂宕掑顑藉亾瀹勬噴褰掑炊瑜滃ù鏍煏婵炵偓娅嗛柛濠傛健閺屻劑寮撮悙娴嬪亾閸濄儳涓嶉柡灞诲劜閻撴洟鏌曟径妯烘灈濠⒀屽櫍閺岋紕鈧絺鏅濈粣鏃堟煛瀹€鈧崰鏍х暦濠婂棭妲鹃柣銏╁灡閻╊垶寮婚敓鐘插窛妞ゆ棁妫勯埀顒佸姍閺岋紕浠︾拠鎻掝潎闂佽鍠撻崐婵嗙暦閹烘垟妲堟慨妤€妫旂槐锟�闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨绘い鎺嬪灪閵囧嫰骞囬姣挎捇鏌熸笟鍨妞ゎ偅绮撳畷鍗炍旈埀顒勭嵁婵犲嫮纾介柛灞捐壘閳ь剛鎳撻~婵嬪Ω閳轰胶鐤呯紓浣割儐椤戞瑩宕ョ€n喗鐓曟い鎰靛亝缁舵氨绱撻崘鈺傜婵﹤顭峰畷鎺戔枎閹搭厽袦婵犵數濮崑鎾绘⒑椤掆偓缁夌敻骞嗛悙鍝勭婵烇綆鍓欐俊鑲╃磼閹邦収娈滈柡灞糕偓鎰佸悑閹肩补鈧尙鏁栧┑鐐村灦閹稿摜绮旈悽绋课﹂柛鏇ㄥ灠閸愨偓濡炪倖鍔﹀鈧繛宀婁邯濮婅櫣绱掑Ο璇茶敿闂佺ǹ娴烽弫璇差嚕婵犳碍鏅插璺猴工瀹撳棝姊虹紒妯哄缂佷焦鎸冲畷鎴﹀箻鐠囧弶宓嶅銈嗘尰缁嬫垶绂嶉悙顒佸弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�  闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚敐澶婄闁挎繂鎲涢幘缁樼厱闁靛牆鎳庨顓㈡煛鐏炶鈧繂鐣烽锕€唯闁挎棁濮ら惁搴♀攽閻愬樊鍤熷┑顕€娼ч~婵嬪Ω瑜庨~鏇㈡煙閹规劦鍤欑痪鎯у悑缁绘盯宕卞Ο铏圭懆闂佸憡锕槐鏇犳閹惧鐟归柛銉戝嫮褰梻浣规偠閸斿矂鎮ラ崗闂寸箚闁圭虎鍠栫粈鍐┿亜閺冨倸甯剁紒鎰洴濮婃椽宕崟鍨ч梺鎼炲妼缂嶅﹤鐣烽姀鐘嗘椽顢旈崨顓涘亾閸偒娈介柣鎰皺娴犮垽鏌涢弮鈧喊宥夊Φ閸曨垱鏅滈悹鍥皺娴犳悂鎮楃憴鍕┛缂佺粯绻堥悰顔芥償閵婏箑娈熼梺闈涳紡閸愩劌顩梻鍌氬€搁オ鎾磻閸曨個娲晝閳ь剛鍙呴梺鍝勭Р閸斿孩鏅堕敓鐘斥拻闁稿本鐟︾粊鐗堛亜閺囧棗鎳夐崑鎾诲垂椤愩垺璇為悗瑙勬礃缁捇骞冮姀锛勯檮濠㈣泛顑囩粙渚€姊绘担鐟板姢缂佺粯鍔曢敃銏℃綇閳轰緡妫滈梺绋跨箻濡法鎹㈤崱妯镐簻闁哄秲鍔庨。鏌ユ煙椤栨氨澧涢柕鍥у椤㈡洟濮€閳惰¥鍨洪妵鍕敂閸曨偅娈绘繝纰樷偓宕囧煟鐎规洖宕灃闁逞屽墴閿濈偞鎯旈妸锔规嫼闂佸憡绋戦オ鎾倿婵傚憡鐓曢柕澶嬪灥閹冲骸顕i妸銉㈡斀闁绘﹩鍠栭悘杈ㄧ箾婢跺顬奸柣褍鐭傚铏圭磼濡崵鍙嗛梺鍛婅壘椤戝骞冮敓鐘参ㄩ柍鍝勫€搁埀顒傛暬閺屻劌鈹戦崱娑扁偓妤呮煕濡粯灏﹂柡灞剧〒閳ь剨缍嗛崑鍛焊閹殿喚纾肩紓浣贯缚缁犳挻銇勯锝囩疄妞ゃ垺锚閳藉鈻庤箛锝勭椽闂傚倷娴囧畷鐢稿窗閹邦喖鍨濋幖娣灪濞呯姵淇婇妶鍛殲闁哄棙绮撻弻鐔兼倻濡鏆楀銈傛櫆瑜板啴婀侀梺缁樻尭濞寸兘骞楅悩缁樼厽闁规儳鐡ㄧ粈瀣煛瀹€鈧崰鏍嵁閸℃凹妾ㄩ梺鎼炲€楅崰鏍蓟瀹ュ瀵犲鑸瞪戦埢鍫ユ⒑閸濆嫯瀚扮紒澶婂濡叉劙骞掗幊宕囧枛閹筹繝濡堕崨顓熻緢婵犵绱曢崑鎴﹀磹閵堝纾婚柛娑卞灡瀹曟煡鏌涢鐘插姎缂佺姷濮电换婵囩節閸屾稑娅i梺鍝勵儏閻楀﹥绌辨繝鍥舵晬婵犲灚鍔曞▓顓烆渻閵堝懐绠扮紓宥咃工椤繑绻濆顒傦紲濠电偛妫欓崺鍫澪i鈧铏规兜閸滀礁娈濈紓浣介哺濞叉粓宕氶幒鎴旀瀻闁规儳纾娲⒑閹稿孩鐓ラ柟纰卞亝缁傚秵绺介崨濞炬嫼闂佸憡绻傜€氬嘲危瑜版帗鐓曢柕濞у啯鐏堥悗娈垮枟閹倸顕i鈧畷濂告偄閸濆嫬绠伴梻鍌欑閹诧繝宕濊瀵板﹪鎳為妷褜娲搁梺鍛婃寙閸涱垽绱冲┑鐐舵彧缂嶁偓婵炲拑绲块弫顔尖槈濮樿京锛滈柣搴秵閸嬪懐浜搁幍顔剧<闁稿本绋戝ù顕€鏌℃担绋挎殻鐎规洘甯掗~婵嬪箟鐎n剙绨ユ繝鐢靛У椤旀牠宕板Δ鍛櫇闁冲搫鎳庣粈鍫ユ煥閺囩偛鈧綊宕愰悽鍛婄厵闁诡垱婢樿闂佹娊鏀辩敮鎺楁箒闂佹寧绻傞幊蹇涘箟閹间焦鐓ユ繛鎴炨缚鑲栫紓浣介哺鐢繝銆佸璺哄窛妞ゆ挾濮冲鎾翠繆閵堝洤啸闁稿鍋ゅ畷褰掑垂椤旂偓娈鹃梺鍓插亝濞诧箓寮崱娑欑厱閻忕偟鍋撻惃鎴︽煏閸剛鐣垫慨濠呮閹风娀骞撻幒鎴炵槪缂傚倸鍊哥粔鏉懳涘▎鎴犵焿鐎广儱顦崘鈧銈嗘尵閸嬬喖宕Δ浣虹閻庣數枪瀛濆銈嗗灥濡繈骞冮垾鏂ユ瀻闁瑰墽琛ラ幏鍝勵渻閵堝棙灏柛鏂块叄閹箖宕¢悜鍡欏數閻熸粍绮撳畷褰掓焼瀹ュ憘锕傛煕閺囥劌鐏犳俊顐o耿閺屾盯鈥﹂幋婵囩亐闂佺ǹ顑嗛幐楣冨箟閹绢喖绀嬫い鎾寸⊕閺侀潧鈹戦悩鍨毄濠殿喗娼欑叅闁挎洖鍊哥壕褰掓⒑閸噮鍎嶅ù婊勭矒閻擃偊宕堕妸锕€纰嶅銈呯箞閸婃繈寮诲☉姘e亾閿濆骸浜濈€规洖鐬奸埀顒侇問閸犳牠鍩€椤掑倸娅忔俊淇卞妼閳规垿鎮欓幓鎺撳€梺缁橆殕濞茬喖宕洪悙鍝勭闁挎棁妫勬禍褰掓煟鎼粹剝璐″┑顔芥尦钘熸繝闈涱儐閳锋垹绱掔€n厼鍔垫い顐畵閺屾盯寮崸妤€寮板Δ鐘靛仜椤︻垶锝為姀鐘垫殕闁逞屽墴閹潡鍩€椤掆偓閳规垿鎮欓弶鎴犱桓鐎光偓閿濆懏鍋ラ柟顔兼健瀹曘劎鈧稒菤閹锋椽姊洪棃鈺佺槣闁告瑢鍋撳┑锛勫亾閹倿寮诲☉銏″亹闁归鐒﹂悿渚€鎮楀▓鍨灍闁绘搫绻濋悰顕€寮介妸锕€顎撻梺闈╁瘜閸樼厧顕i幎鑺モ拻濞达綀娅g敮娑欑箾閸欏澧电€规洘鍔欏畷鐑筋敇濞戞ü澹曞┑顔结缚閸嬫挾鈧熬鎷�
核心提示:实体bean 实体bean的角色 实体bean用来代表底层的对象,最常用的是用实体bean代表关系库中的数据,EnterpriseJavaBeans导论四,一个简单的实体bean可以定义成代表数据库表的一个记录,也就是每一个实例代表一个特殊的记录,唯一的要求是类必须实现serializable,因为主键可能在客户和服务

  实体bean
实体bean的角色

实体bean用来代表底层的对象。最常用的是用实体bean代表关系库中的数据。一个简单的实体bean可以定义成代表数据库表的一个记录,也就是每一个实例代表一个特殊的记录。更复杂的实体bean可以代表数据库表间关联视图。在实体bean中还可以考虑包含厂商的增强功能,如对象--关系映射的集成。
通常用实体类代表一个数据库表比代表多个相关联的表更简单且更有效。反过来可以轻易地向实体类的定义中增加关联,这样可以最大地复用cache并减小旧数据的表现。

实体bean和对话bean的比较

看起来会话bean好象没什么用处,尤其对于数据驱动的应用程序。当然事实并不是这样。因为实体bean(譬如说)代表底层数据库的一行,则实体bean实例和数据库记录间就是一对一的关系。因为多个客户端必须访问底层记录,这意味着,不同于会话bean,客户端必须共享实体bean。因为是共享的,所以实体bean不允许保存每个客户端的信息。会话bean允许保存客户端的状态信息,客户端和会话bean实例间是一对一的。实体bean允许保存记录的信息,实体bean实例和记录间是一对一的。一个理想的情况是客户端通过会话bean连接服务器,然后会话bean通过实体bean访问数据库。这使得既可以保存客户端的信息又可以保存数据库记录的信息。
同时会话bean也不能提供在相同或不同的EJB类调用间进行全局的事务控制。没有会话bean,应用程序开发者(客户端开发者)就必须理解EJB类的事务要求,并使用客户端的事务划分来提供事务控制。EJB的主要好处就是应用开发者不需知道EJB类的事务需求。一个会话bean可以代表一个商业操作,进行事务控制,不需要客户端进行事务划分。

Finder方法

通过home或remote interface创建和删除bean的实例,对实体bean和会话bean来说有不同的含义。对会话bean来说,删除意味着从容器中删除,不能再使用,并且其状态信息也丢失了。对于实体bean,删除意味着底层数据库记录被删除了。因此,一般不把删除作为实体bean生命周期的一部分。
创建一个实体bean意味着一个记录被插进数据库中。与删除操作类似,创建操作通常也不作为实体bean生命周期的一部分。客户端访问实体bean需要先找到它。除了create()方法,一个实体bean的home interface还有finder方法。客户端需要根据应用程序的限制来识别一个特殊的数据库记录。例如:

public interface AccountHome extends EJBHome {
public Account findByFirstLast(String first, String last)
throws RemoteException,FinderException;
public Account findByAccountNumber(String acctNum)
throws RemoteException,FinderException;
}

当客户端调用home object的任何方法,容器把调用传递到实体bean的相应方法中。

Public class myEntityBean implements EntityBean {

public Obejct ejbFindByFirstLast(String first, String last) {
//runs apPRopriate singleton SELECT statement
//returns primary key for selected row
}
public Obejct ejbFindByAccountNumber(String acctNum) {
//runs appropriate singleton SELECT statement
//returns primary key for selected row
}
}

一个较好的方法是把finder方法当成数据库的SELECT语句,而动态SQL参数相当于方法的参数。注意home interface中的finder方法向客户端返回一个对EJBObject的远程引用。Bean中的Finder方法向容器返回一个唯一的标识符,称为主键。容器用这个主键实例化一个代表选定的记录的EJBObject。不论如何实现finder方法,容器都用这个主键代表这个选定的记录,由实体类来决定如何用唯一的标识符来代表记录。
由可能一个finder方法得到满足SELECT语句条件的多个记录。这种情况下bean的finder方法返回一个主键的枚举类型。Home interface的Finder方法定义成向客户端返回EJBObject引用的枚举类型。

Public interface AccountHome extends EJBHome {

public Enumeration findByCompany(String companyName)
throws RemoteException,FinderException;
}
public class myEntityBean implements EntityBean {

public Enumeration ejbFindByCompany(String companyName) {
//runs appropriate SELECT statement
//returns an Enumeration of primary keys
}
}

主键

主键这个词有可能被曲解。把它理解为唯一的标识符更恰当些。当实体bean代表一个数据库记录时,主键可能是该记录的组合键。对于每个实体bean的实例,有一个相应的EJBObject.当一个EJBObject与一个实体bean实例对应时,该实例的主键保存在EJBObject中。
这时说该实体bean的实例有一个标识符。当客户端调用home object的finder方法时,容器会用没有标识符的实体bean的实例来执行这个请求。容器可能为此维持一个甚至多个匿名的实例。不论如何实现finder方法,都必须向容器返回底层数据的主键,如数据库的记录。如果多个记录满足条件,那么就返回多个主键。当容器得到主键后,它会用该主键初始化一个EJBObject.容器也可以初始化一个与每个EJBObject关联的实体bean的实例。因为底层记录的标识符在EJBObject中保存,因此在bean实例中没有状态。因此,容器可以在EJBObject上调用商业方法时再实例化bean,以节省内存资源。
当finder方法向容器返回主键时,容器首先会检查该主键的EJBObject是否已经存在。如果该主键的EJBObject已经存在,那么容器不会创建一个新的EJBObject,而是向客户端返回这个已存在的EJBObject的引用。这样就保证了每个记录只有一个EJBObject的实例,所有的客户端共享EJBObject.
主键只是在该类中唯一地标识bean的实例,容器负责保证其范围。应该明确finder方法只是从数据库中取出数据的主键,而不包含其它的数据项。也可能调用finder方法后不产生任何实体bean的实例,只产生包含该主键的EJBObject,当客户端调用EJBObject的方法时在产生并导入实体bean的实例。 Home object保证客户端可以访问以下方法:
public myRem findByPrimaryKey(Obejct key) throws …;
EJBObject提供以下方法的一个实现:
Public Object getPrimaryKey();
客户端能在任何时候获得实体bean的主键,并且以后可以使用该主键通过home interface重建对实体的引用。主键类的类型在部署描述符中指定。Bean开发者可以用任何类类型来表示主键。唯一的要求是类必须实现serializable,因为主键可能在客户和服务器间传递。
出处 www.apusic.com  进入讨论组讨论。

(出处:http://www.cncms.com)


Tags:EnterpriseJavaBeans 导论

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接