java,ssh开发时,是否需要建立VO类
发布网友
发布时间:2022-04-09 22:18
我来回答
共5个回答
热心网友
时间:2022-04-09 23:48
一般来说是需要的
VO是对于页面来说的。
POJO是对于数据库对应的实体类来说的
有时候没有对应的实体类都可以建一个VO来做。
这样做可能会有些损失效率,但是对以后的维护来说非常方便
热心网友
时间:2022-04-10 01:06
从业务层次上分:(这里只说数据对象)
在数据库执行持久化(或者查询)操作时,我们需要PO,也就是持久化对象,在这个对象中,字段一般是对应数据库table的,而且我们还可以吧相关的查询参数写到这个类里面(比如分页参数等等),经过DAO操作后,(针对目前主流的ORM模型),我们会得带一个结果对象(或者是list),这里我们成为DO(data object)
接下来DO会被BO(business object,说简单点就是小型应用中的service层)接收并做处理,BO一般是针对一个领域的操作,所以BO处理的结果被称为DO(domain object),也就是所谓的领域对象(个人理解),再接下来,如果你存在AO层(application object),也就是应用层的话,AO会调用BO,也就是说AO是对BO的封装,说白了就是对具体应用的组合(相对来说就是BO封装DAO),AO处理完以后一般会放回一个RO(result object),封装对应用的响应和返回的结果。
然后,才是到了我们的web层,也就是我们的struts action那一层(action整合AO)。
也就是说,web层,就是我们的struts应该做的事情是什么:
1:对提交表单的验证和处理
2:对http会话的管理和相关权限的分配以及对AO的整合调用
3:对客户端(浏览器)响应结果
提到响应结果,我们就说到VO了,vo全名value object,值对象,用在这层再合适不过了,我们把从AO调用返回的RO中的数据提取出来转换成VO,就可以通过struts渲染到jsp(或者freemarker,velocity,以及json格式的ajax响应)页面上了。当然VO也可以适当充当表单对象来用作提交,但是,也只是一定程度上的,提交的表单不一定就跟返回的结果一模一样,这点相信大家都知道的 呵呵
总结一下:调用操作StrutsAction---->AO---->BO(小型项目上,AO+BO也可整合成Service)----->DAO,各层各司其责,方便以后的维护和扩展,同时结合maven等工具,每个层单独跑junit测试也是相当方便。
从一个VO到这么一大堆问题,不晓得楼主你看晕没,呵呵。以上纯属个人经验,请适当做参考,有不对之处欢迎指出。最后说句让你吐血的话:其实针对小型应用,那些所谓的PO,DO,RO都可以不需要了,直接一个VO贯穿整个数据应用就行。引用楼上兄弟的一句话:具体实现看你自己。既要保证优良的层次结构,也要杜绝过度设计。
热心网友
时间:2022-04-10 02:40
其实不必要。不过为了程序的可读性以及层次性 我还是建议使用vo。具体实现看你自己。
热心网友
时间:2022-04-10 04:32
我发给你 你等等
是一个大项目,我的毕业项目,用到ssh+ajax
是一个超市管理系统
代码很简洁
补:
mysql代码在webroot里面名为market.sql
邮件正在发送,可能要点时间,因为有点大20M
哦 还有,你到applicationcontext.xml里面去把数据库密码改成你的数据库密码
很简单的 你看看代码应该会改,我就不多说了
糟了,不行,邮件附件最大只支持15m,可我那项目是20m
289896737这是我qq号你加我 我直接传你
热心网友
时间:2022-04-10 06:40
如果是struts1.x 是一定需要Formbean的,如果是struts2的话就没必要啦!