﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-xsm－－海阔天空-随笔分类-J2EE</title><link>http://www.blogjava.net/xsm1034999/category/18550.html</link><description>JAVA AND DocNET！</description><language>zh-cn</language><lastBuildDate>Mon, 12 Nov 2007 05:56:13 GMT</lastBuildDate><pubDate>Mon, 12 Nov 2007 05:56:13 GMT</pubDate><ttl>60</ttl><item><title>关于JAVA的PO与VO</title><link>http://www.blogjava.net/xsm1034999/archive/2007/11/11/159706.html</link><dc:creator>xsm</dc:creator><author>xsm</author><pubDate>Sun, 11 Nov 2007 05:39:00 GMT</pubDate><guid>http://www.blogjava.net/xsm1034999/archive/2007/11/11/159706.html</guid><wfw:comment>http://www.blogjava.net/xsm1034999/comments/159706.html</wfw:comment><comments>http://www.blogjava.net/xsm1034999/archive/2007/11/11/159706.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/xsm1034999/comments/commentRss/159706.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xsm1034999/services/trackbacks/159706.html</trackback:ping><description><![CDATA[
		<p>
				<font face="Courier New" size="4">
						<font face="Garamond">
								<font size="3">        我一直很矛盾：是否PO可以用在商业逻辑层，当作VO使用；还是将两者分开。在许多论坛上，这两者之争也很激烈。所以今天我打算把我的想法写下来。 <wbr><br /><font size="3"><font style="FONT-SIZE: x-small; LINE-HEIGHT: 1.3em">          首先，java有几种对象(PO,VO,DAO,BO,POJO)   </font><wbr><br /></wbr></font><font style="FONT-SIZE: x-small; LINE-HEIGHT: 1.3em">    <font size="3">     一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。 </font></font><wbr><br /></wbr></wbr></font>
								<font style="FONT-SIZE: x-small; LINE-HEIGHT: 1.3em" size="3">          二、VO:<font size="4">value object</font><font size="3">值对象。通常用于业务层之间的数据传递，和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.<br /></font></font>      <font size="3">有一种观点就是：PO只能用在数据层，VO用在商业逻辑层和表示层。各层操作属于该层自己的数据对象，这样就可以降低各层之间的耦合，便于以后系统的维护和扩展。如果将PO用在各个层中就相当于我们使用全局变量，我们知道在OO设计非常不赞成使用全局变量。 <br />       但是每次都得进行VO-PO的转换，也确实很烦。我觉得有时候也可以在某个商业逻辑或者表示层使用PO，此时在这个商业逻辑的过程中PO的状态是不发生变化的，比如显示一条商品详细信息的商业逻辑。 <br />       在开发过的项目中，规模都很小，我一直都把PO当VO用，因为PO确实很方便，结合Hibernate的DAO，我使用JAVA的集合对象作为值传递的载体，当然Struts也是我的不二之选。 <br />       我认为：在一些直观的，简单的，不易发生变化的，不需要涉及多个PO时，传递值还是使用PO好，这样可以减少大量的工作量（也就意味着减少bug，减少风险），也不需要担心未来的维护工作！（待续） <br /></font></font>
				</font>
		</p>
<img src ="http://www.blogjava.net/xsm1034999/aggbug/159706.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xsm1034999/" target="_blank">xsm</a> 2007-11-11 13:39 <a href="http://www.blogjava.net/xsm1034999/archive/2007/11/11/159706.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用hibernate+DAO组件（1）</title><link>http://www.blogjava.net/xsm1034999/archive/2007/04/08/109265.html</link><dc:creator>xsm</dc:creator><author>xsm</author><pubDate>Sun, 08 Apr 2007 12:34:00 GMT</pubDate><guid>http://www.blogjava.net/xsm1034999/archive/2007/04/08/109265.html</guid><wfw:comment>http://www.blogjava.net/xsm1034999/comments/109265.html</wfw:comment><comments>http://www.blogjava.net/xsm1034999/archive/2007/04/08/109265.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xsm1034999/comments/commentRss/109265.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xsm1034999/services/trackbacks/109265.html</trackback:ping><description><![CDATA[
		<font color="#000000">今天试了一下DAO＋Hibernate，还不错，很方便。<br />倒是遇到了一个问题：就是使用findByProperty(String propertyName, Object value)<br /></font>
		<br />事实上，他的第一个参数是属性名，第二个参数是值；<br />需要注意的是如果在设置参数的时候直接传属性将会报错，提示找不到这个属性<br />解决的方法是：在×.hbm.xml映射文件里，有一个配置<font color="#000000">&lt;composite-id name=“dd”,假如你的POJO属性名是xx，那么第一个参数应该是dd.xx<br /></font><br /><br /><img src ="http://www.blogjava.net/xsm1034999/aggbug/109265.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xsm1034999/" target="_blank">xsm</a> 2007-04-08 20:34 <a href="http://www.blogjava.net/xsm1034999/archive/2007/04/08/109265.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBuilder2005+ JBoss 开发CMP学习笔记</title><link>http://www.blogjava.net/xsm1034999/archive/2006/12/20/89017.html</link><dc:creator>xsm</dc:creator><author>xsm</author><pubDate>Wed, 20 Dec 2006 05:01:00 GMT</pubDate><guid>http://www.blogjava.net/xsm1034999/archive/2006/12/20/89017.html</guid><wfw:comment>http://www.blogjava.net/xsm1034999/comments/89017.html</wfw:comment><comments>http://www.blogjava.net/xsm1034999/archive/2006/12/20/89017.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xsm1034999/comments/commentRss/89017.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xsm1034999/services/trackbacks/89017.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 关于使用JB+JBoss开发CMP的详细步骤&nbsp;&nbsp;<a href='http://www.blogjava.net/xsm1034999/archive/2006/12/20/89017.html'>阅读全文</a><img src ="http://www.blogjava.net/xsm1034999/aggbug/89017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xsm1034999/" target="_blank">xsm</a> 2006-12-20 13:01 <a href="http://www.blogjava.net/xsm1034999/archive/2006/12/20/89017.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>