没有合适的资源?快使用搜索试试~ 我知道了~
结合struts和hibernate谈J2EE架构的数据表示.doc
需积分: 3 1 下载量 16 浏览量
2011-03-21
15:39:02
上传
评论
收藏 30KB DOC 举报
温馨提示
试读
4页
结合struts和hibernate谈J2EE架构的数据表示
资源推荐
资源详情
资源评论
在struts+hibernate这种结构中,是不应该把 Hibernate 产生的 PO 直接传递给 JSP 的,
不管他是 Iterator,还是 List,这是一个设计错误。
我来谈谈在 J2EE 架构中各层的数据表示方法:
Web 层的数据表示是 FormBean,数据来源于 HTMLFormPOST
业务层的数据表示是 VO
持久层的数据表示是 PO,其数据来源于数据库,持久层的数据表示例如 CMP
在一个规范的 J2EE 架构中,不同层的数据表示应该被限制在层内,而不应该扩散到其它
层,这样可以降低层间的耦合性,提高 J2EE 架构整体的可维护性和可扩展性。比如说
Web 层的逻辑进行了修改,那么只需要修改 FormBean 的结构,而不需要触动业务层和
持久层的代码修改。同样滴,当数据库表进行了小的调整,那么也只需要修改持久层数据
表示,而不需要触动业务层代码和 Web 层代码。
不过由于 Hibernate 的强大功能,例如动态生成 PO,PO 的状态管理可以脱离 Session,
使得在应用了 Hibernate 的 J2EE 框架中,PO 完全可以充当 VO,因此我们下面把 PO 和
VO 合并,统称为 PO。
先来谈谈 ActionFormBean 和持久层的 PO 之间的重大区别。
在简单的应用中,ActionFormBean 和 PO 几乎是没有区别,所以很多人干脆就是用
ActionFormBean 来充当 PO,于是 ActionFormBean 从 JSP 页面到 Servlet 控制层再
到业务层,然后穿过持久层,最后一直映射到数据库表。真是一竿子捅到了底!
但是在复杂的应用中,ActionFormBean 和 PO 是分离的,他们也不可能一样。
ActionFormBean 是和网页里面的 Form 表单一一对应的,Form 里面有什么元素,
Bean 里面就有什么属性。而 PO 和数据库表对应,因此如果数据库表不修改,那么 PO 也
不会修改,如果页面的流程和数据库表字段对应关系不一致,那么你又如何能够使用
资源评论
tanhao1006
- 粉丝: 0
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功