??xml version="1.0" encoding="utf-8" standalone="yes"?>久久激情视频久久,偷拍亚洲精品,99视频在线免费观看http://www.aygfsteel.com/dfstorm/zh-cnSun, 06 Jul 2025 07:48:41 GMTSun, 06 Jul 2025 07:48:41 GMT60l合struts和hibernate谈J2EE架构的数据表C?转自javaeye robbin的文?http://www.aygfsteel.com/dfstorm/archive/2005/10/27/16968.html月夜的家月夜的家Thu, 27 Oct 2005 02:11:00 GMThttp://www.aygfsteel.com/dfstorm/archive/2005/10/27/16968.htmlhttp://www.aygfsteel.com/dfstorm/comments/16968.htmlhttp://www.aygfsteel.com/dfstorm/archive/2005/10/27/16968.html#Feedback0http://www.aygfsteel.com/dfstorm/comments/commentRss/16968.htmlhttp://www.aygfsteel.com/dfstorm/services/trackbacks/16968.html?struts+ hibernate q种l构中,是不应该把Hibernate产生的PO直接传递给JSP的,不管他是IteratorQ还是ListQ这是一个设计错误?

我来谈谈在J2EE架构中各层的数据表示ҎQ?

Web层的数据表示是FormBeanQ数据来源于HTML Form POST
业务层的数据表示是VO
持久层的数据表示是POQ其数据来源于数据库Q持久层的数据表CZ如CMP

在一个规范的J2EE架构中,不同层的数据表示应该被限制在层内Q而不应该扩散到其它层Q这样可以降低层间的耦合性,提高J2EE架构整体的可l护性和可扩展性。比如说Web层的逻辑q行了修改,那么只需要修改FormBean的结构,而不需要触动业务层和持久层的代码修攏V同hQ当数据库表q行了小的调_那么也只需要修Ҏ久层数据表示Q而不需要触动业务层代码和Web层代码?

不过׃Hibernate的强大功能,例如动态生成POQPO的状态管理可以脱SessionQ得在应用了Hibernate的J2EE框架中,PO完全可以充当VOQ因此我们下面把PO和VO合ƈQ统UCؓPO?

先来谈谈ActionFormBean和持久层的PO之间的重大区别?

在简单的应用中,ActionFormBean和PO几乎是没有区别,所以很多hq脆是用ActionFormBean来充当POQ于是ActionFormBean从JSP面到Servlet控制层再C务层Q然后穿q持久层Q最后一直映到数据库表。真是一竿子捅到了底Q?

但是在复杂的应用中,ActionFormBean和PO是分ȝQ他们也不可能一栗ActionFormBean是和|页里面的Form表单一一对应的,Form里面有什么元素,Bean里面有什么属性。而PO和数据库表对应,因此如果数据库表不修改,那么PO也不会修改,如果面的流E和数据库表字段对应关系不一_那么你又如何能够使用ActionFormBean来取代PO呢?

比如说吧Q用h册页面要求注册用L基本信息Q因此HTML Form里面包含了基本信息属性,于是你需要一个ActionFormBean来一一对应(注意Q是一一对应)Q每个Bean属性对应一个文本框或者选择框什么的?

而用戯个持久对象呢Q他的属性和ActionFormBean有什么明显不同呢Q他会有一些ActionFormBean所没有的集合属性,比如说用L权限属性,用户的组属性,用户的帖子等{。另外还有可能的是在ActionFormBean里面?个属性,分别是用LFirst Name, Middle Name, Last NameQ而在我的Userq个持久对象中就是一?Name 对象属性?

假设我的注册面原来只要你提供First NameQ那么ActionFormBeanp一个属性,后来我要你提供全名,你要改ActionFormBeanQ加两个属性。但是这个时候PO是不应该修改_因ؓ数据库没有改?

那么在一个完整的J2EEpȝ中应该如何进行合理的设计呢?

JSP(View) ---> ActionFormBean(Module) ---> Action(Control)

ActionFormBean是Web层的数据表示Q它和HTML面Form对应Q只要Web面的操作流E发生改变,它就要相应的q行修改Q它不应该也不能被传递到业务层和持久层,否则一旦页面修改,会一直牵q到业务层和持久层的大面U的代码q行修改Q对于Y件的可维护性和可扩展性而言Q是一个灾难,Actiont是他的边界Q到此ؓ止!

Action(Web Control) ---> Business Bean ---> DAO ---> ORM --->DB

而PO则是业务层和持久层的数据表示Q它在业务层和持久层之间q行动Q他不应该也不能被传递到Web层的View中去Q而ActionServlet是他的边界Q到此ؓ止!

然后来看一看整个架构的程Q?

当用户通过览器访问网,提交了一个页面。于是Action拿到了这个FormBeanQ他会把FormBean属性读出来Q然后构造一个PO对象Q再调用业务层的Beanc,完成了注册操作,重定向到成功面。而业务层Bean收到q个PO对象之后Q调用DAO接口ҎQ进行持久对象的持久化操作?

当用h询某个会员的信息的时候,他用全名q行查询Q于是Action得到一个UserNameFormBean包括?个属性,分别是first name, middle name, last nameQ然后Action把UserNameFormBean?个属性读出来Q构造Name对象Q再调用业务BeanQ把Name对象传递给业务BeanQ进行查询?

业务Bean取得Name(注意: Name对象只是User的一个属?对象之后调用DAO接口Q返回一个User的PO对象Q注意这个User不同于在Web层用的UserFormBeanQ他有很多集合属性滴。然后业务Bean把User对象q回lAction?

Action拿到User之后Q把User的基本属性取?集合属性如果不需要就免了)Q构造UserFormBeanQ然后把UserFormBean request.setAttribute(...)Q然后重定向到查询结果页面?

查询面拿到request对象里面的ActionFormBeanQ自动调用tag昄之?

ȝQ?

FormBean是Web层的数据表示Q他不能被传递到业务层;PO是持久层的数据表C,在特定情况下Q例如Hibernate中,他可以取代VO出现在业务层Q但是不POq是VO都必限制在业务层内使用Q最多到达Web层的ControlQ绝不能被扩散到View厅R?

FormBean和PO之间的数据{化是在Action中进行滴?

BTW:

JDO1.xq不能像Hibernate功能q样强大QPO不能q持久层,所以必d业务层用VOQ因此必d业务层进行大量的VO和PO的{化操作,相对于Hibernate来说Q编E比较烦琐?

当然咯,理论是一回事Q实际操作也不一定非要这样干Q你可以自行取舍Q在实际目中灵zM点,增加一点bad smellQ提高开发效率。只不过在大型项目中最好还是严丝合~,不然的话Q改版的时候会痛苦的很滴?/FONT>

月夜的家 2005-10-27 10:11 发表评论
]]>
观十q会开q式有感http://www.aygfsteel.com/dfstorm/archive/2005/10/16/15638.html月夜的家月夜的家Sun, 16 Oct 2005 07:06:00 GMThttp://www.aygfsteel.com/dfstorm/archive/2005/10/16/15638.htmlhttp://www.aygfsteel.com/dfstorm/comments/15638.htmlhttp://www.aygfsteel.com/dfstorm/archive/2005/10/16/15638.html#Feedback0http://www.aygfsteel.com/dfstorm/comments/commentRss/15638.htmlhttp://www.aygfsteel.com/dfstorm/services/trackbacks/15638.html开q了Q全场黑灯瞎伙,音乐惌vQ气氛有些阴恐?BR>
在跑道四周的演员个个I得象OTMANQ奥ҎQ,手里늝cM猪肝的巨大物体然后这些牵着猪肝的OTMAN聚集在舞C央,像个臛_PIZZAQ?BR>H然Q红光崩玎ͽ?BR>PIZZA又分裂成若干猪肝、上升~~宛如一朵蘑菇云Q让我想起了今年是抗?0周年U念

令h受不了的是烟雾,从没惛_q冰会如此的令hH息~~
丹宁吐了,许多14排以前的人都跑了Q敢于留下来的都用手帕捂着_惨不忍睹Q配合五颜六色的Ȁ光,Dh婯Q“妈的,像黑山老妖Q?BR>
表现江苏U技一章,除了OTMAN丄螺母、三角板pQ实在看不出有啥工业成䆾可言
孙老大发话Q“想起了学好数理化,走遍天下”的古老格a
唉~导演的创意实在o江苏,表现U技用三角板Q依此类推,表现表现江苏l济大省是不是该丄钞票满场跑?

最夸张的是800个古代的三陪xq느Q?BR>
孙老大_呵呵Q有史以来最多的느集会
我觉得这个糟p的场景明显剽窃了张在雅典奥q会l尾那个最臭名昭著的大腿舞
在张眼里Q?BR>陕北风俗Q大U棉袄+大腿Q二胡+扭屁股+大红灯笼=中国
在我们导演眼里,
苏南调Q绿色长裙+露半个后脊背Q琵Ӟ转圈Q雨?江苏

摄像也很滥,Ҏ抓不住演员,特写镜头也没几个(后评:?

但我q是喜欢q个开q式Q除了干Co我作呕外)Q特别是W一章,倒不是因为它好,实在是因为它够烂。不q,虽然烂、恐怖、阴,不知所云、不着辚w、不以ؓd以ؓ荣,但L让我ȝ那些弘扬正气的,光明的,正气凛然的、充满正面说教的开q式好?BR>
因此开q式q是值得一看的Q当然要qq灾乐祸的心态,q吃饱了撑的没事干的心态,当是看癑ֹ不遇的猴儿打Ӟ


月夜的家 2005-10-16 15:06 发表评论
]]>
大闹天宫2005?/title><link>http://www.aygfsteel.com/dfstorm/archive/2005/10/16/15635.html</link><dc:creator>月夜的家</dc:creator><author>月夜的家</author><pubDate>Sun, 16 Oct 2005 06:45:00 GMT</pubDate><guid>http://www.aygfsteel.com/dfstorm/archive/2005/10/16/15635.html</guid><wfw:comment>http://www.aygfsteel.com/dfstorm/comments/15635.html</wfw:comment><comments>http://www.aygfsteel.com/dfstorm/archive/2005/10/16/15635.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/dfstorm/comments/commentRss/15635.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/dfstorm/services/trackbacks/15635.html</trackback:ping><description><![CDATA[<DIV><FONT size=2>且说孙悟I大闹天宫,观世韌萨D荐二郎真君降妖,带天兵天在花果山大战。正斗间Q大圣忽见本营中妖猴惊散Q自觉心慌,抽npQ众天将慌慌张张Q前后寻觅不见,一齐吆喝道Q“走了这猴精也!Cq猴_也Q?BR>  二郎圆睁凤目观看,却见下界人烟J华之处Q那大圣变做一个老头Q推着一辆三轮RQ抖抖烦索地Q正在街边卖烤白薯。二郎心中冷W,正待发标打他Q忽然见一伙城,手持锤剪棒Q吆吆喝喝,不由分说Q便三轮R砸得E烂。大圣一惊,以ؓ是天兵到来,q忙转过街角Q又摇n一变,变做一个小姐,描眉ȝQ在那里袅袅婷婷走\。却又被二郎看个真切Q二度意Ʋ发标,q面却又来了几个公安Q劈面揪住大圣道Q“定是一个野鸡,随我局子里C!”大圣心慌,忙道Q“我不是野鸡Q我q是处女Q”公安狂W道Q“处x地Q处女便嫖不得娼么?”手铐一抖,便要拿h。大圣见事不谐,忙将C扭,腄而去Q眼见前方一个山凹,便滚下山崖,伏在那里又变Q变一座小学,大张着口,g校门Q牙齿变做门扇,眼睛变做H棂Q抖几个猴虱下来变做学生咿咿呀呀念书。只有尾巴不好收拾,竖在后面Q变做一Ҏ竿,悬v一条大标语Q“百q大计,教育为本Q义务教Ԍ免费入学。”二郎两番被抢了先手Q心中正在烦P眼看得这条标语,不由W道Q“是q猢狲了Q他今又在那里哄我。殊不知中国L义务教育Q那里有得免费?我也曾见q学校千万,更不见一个不把学生做摇钱树的Q看我打杀q个猴子Q”大圣听得心惊,扑的一个虎跻I又冒在空中不见?BR>  真君望不见大圣踪影,急纵w驾云,起在半空。见那李天王高D望远镜站在云端,呵呵W道Q“真君,快去Q快去!那猴使了个隐w法Q走_往你那灌江口去也。”二郎听_忙回灌江口来赶?BR>却说灌江口正开大会Q大圣摇w一变,变做一个XX代表Q杂在会Z中,指东点西Q做t跃发言状。正自以为得计,却不料被真君一D_“XX代表向来是惔塑土偶的像Q什么时候跑Z个活的来Q”D着三尖两刃锋Q劈脸就砍。那猴王急忙w过Q金箍相寏V两个嚷嚷闹闹,打出会场Q半雑֍云,且行且战?BR>  半空中天庭妇联主任观韌萨与g部长太上老君正在观战。菩萨对老君道:“老君哥哥Q僧所举二郎神如何Q果有神通,已经那大圣围囎ͼ只是未得擒拿。我如今助他一功,拿下猴头。”老君道:“观韛_子?你将何兵器助他?”观韛_w唤q坐骑:“看我开宝马撞他一下。”老君道:“你那宝马h格甚为昂贵,若撞坏了多有不便。”观音道Q“横竖也是公ƾ,撞了撞了吧。”老君又道Q“那修理h也甚为麻烦,q是让我来替妹子助他吧。”观xQ“坏了就不要了,我正x辆凯q拉客。”正拉拉扯扯_老君w后转过一名仙娥,乃是有名的张惟英教授Q献与老君一件宝物,嘴里喃喃说着什?“M能让所有h都来天庭吧……我至今都不认ؓ我错了……”{w而去。老君定睛看时Q那宝物却是一件“天庭h口准入制度”,不由大喜Q“此物一出,全中国h都发抖,正可用来对付山野村猴Q等我丢下去打他一下。观韛_子,q趟功劳要让l我了。”观韛_嗔道Q“讨厌,人家不跟你玩了啦。”老君涎脸W道Q“妹子莫气,q一击若得手Q定此Ҏ做主旋律电媄Q妹子作Z角,由我家女丑女丑扮演,所有院U同时上映,何如Q”观韌才回嗔作喜?BR>  只见老君那法宝自天门上往下一|滴溜溜,可可的着猴王头上一下,大圣打d圎ͼ众天庭公安一拥而上Q将大圣捆个l实Q再也不能变化。一公安怒道Q“这厮o我等吃了不少苦头Q今日一发还了他|!饶你个孙悟空Q今日要你变做孙志刚!”正待把出手D,却有另一公安叫道Q“且慢,我等老手D土得掉渣,如今时兴与国际接轨,那驻伊美军虐囚,手段千变万化Q何不学得一二,今日做个新鲜耍子Q”众公安一听,齐声U妙Q便大圣押L妖台Q电ȝ烧,刀砍斧剁,却伤不得大圣分毫?BR>  玉帝见状Q不pw:“这厮这{,q等……如何处治?”老君奏道Q“不若与老君领去Q放在八卦炉中,炼出我的ҎQ何如?”玉帝闻听大喜,便将大圣赐与老君ȝ。殊不知大圣通广大,拔下一Ҏ毛,变做钞Q較赂了扇火童子Q得知那巽位下有风无火,前往w避Q未曑֏得重伤?BR>  七七四十九日满,老君开炉取丹,却见大圣飞n而出Q金箍大杀四方Q打得天宫中九曜星闭门闭P四天王无影无t。直打到通明D前Q玉帝见状大惊,忙叫道:“快Q关门,攑֍警!”原来那协警之徒Q比正规警察更凶恶十倍,只见一个个奋勇争先Q踊跃咆哮,大圣围在垓心,眼看p拿下?BR>  玉帝正在庆幸Q忽见协警们全做了鸟兽散Q原来此辈性贪Q眼中只有金Ӟ大圣之黄金锁子甲在炉子中烤得甲环松脱Q被众协警一口一撕,刻间个个嘴里有片黄金,UL跑回后院掩埋收藏不提?BR>  正没奈何_忽见西方如来相助Q要与大圣赌赛。如来曰Q“我有一h宝,你若能飞出我q法宝管辖,便让你做了玉帝之位;若飞不出Q便~械投降如何Q”说|自怀中掏出法宝,悟空定睛看时Q却是一个小本子,上书三个大字Q暂住证。便W道Q“一个小本子,有何灵能Q我MQ”一个跟头飞出,自天I降落北京地界,脚步刚落Q便见几名警察前来:“那个谁Q说你呢Q暂住证拿出来看看!”悟IZ惊,腰一扭,又一个跟头飞到广州,正在观望Q忽见一联防冲来:“这个好像没有暂住证Q快抓住他!”七手八脚要拿下大圣Q大圣忙分开众手Q复又飞P急切间难辨方向,却又飞回如来面前。如来微W道Q“我的宝贝何如?”大圣道Q“不!不算Q闻听西Ҏ国,不设暂住证,待我L!”正要纵w蟩出,却被如来手掌一,暂住证变做一座五行山Q将大圣牢牢压住?BR>  玉帝见擒了大圣,心中大喜Q便邀请如来及有功臣Q备齐饭局d、赃ƾ三陪,做了一个安天大会,盛世联欢。正行乐_忽有五行山居委会老太来报Q“那大圣伸出头来了,说他要挣脱出去赶招聘会,投简历发名片Q谋个职位,以图东山再v哩!”如来道Q“不妨,不妨。”袖中只取出一张帖子,上有六个金字Q“此人农村户口。”递与手下Q让贴在那五行山上。又向天再借五癑ֹQ那帖子牢牢置不得脱落,那山即生根合缝Q大圣再也无法爬出,自此一压就是五癑ֹ不得n也?BR></FONT></DIV><img src ="http://www.aygfsteel.com/dfstorm/aggbug/15635.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/dfstorm/" target="_blank">月夜的家</a> 2005-10-16 14:45 <a href="http://www.aygfsteel.com/dfstorm/archive/2005/10/16/15635.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͨ</a>| <a href="http://" target="_blank">ľ</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank">޵</a>| <a href="http://" target="_blank">ʯȪ</a>| <a href="http://" target="_blank">ƽ˳</a>| <a href="http://" target="_blank">«</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˫</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ӫɽ</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank">Ĭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">׸</a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">ͤ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ܿ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ƹ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">³</a>| <a href="http://" target="_blank">ͬ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>