如何实现一个快速开发框架之crud

如何实现一个快速开发框架之crud
我们在《一个优秀框架的评判标准和方向》说了,一个优秀的企业级开发框架——以用户需求为向导的框架——应该至少实现crud,workflow,report三个范畴的常见需求的快速开发。
Crud范畴的快速开发具体怎么做呢?这里提供一种我的实现方式,它采用了hibernate这个orm框架。
Crud;说白了就是一个实体对象的增、删、改、查。是我们最常见的功能。做Crud的时候oo的思想特别有用。
通过分析得到我们的实体对象和它们之间得关系。那么我们的功能无外呼就是维护实体对象和对象之间的关系。
具体怎么来阐述我的思路呢?
页面是功能得直接表现。我们就从页面说。(实体对象和对象之间的关系是本质,而页面是本质的体现。不同实体的不同关系,在页面上会有一定的表现。这个就上是生病了去看医生,医生通常是从你的表征上来看你得了什么病。)
举个例子:
例如:多对一的关联关系:
如班级和系别的关系,多个班级属于一个系。关系得主控方通常在多得一方。(具体hibernate怎么配置请参看《我的O/R MAPPING (HIBERNATE)方法小结》)那么我们的页面就是这样:
[img]http://www.iteye.com/upload/attachment/34422/2655b176-2869-37dc-9f26-bdd8393a4aac.gif[/img]
上面有一个选择,点击后弹出系别列表,可以选择系别。当然也可以是一个下拉框。可以让程序员根据需要用tag方便替换。

又如:多对多关系(或多对一关系主控方在一的一方)
如学生选客,学生和课程多对多,主控方在学生,这个时候我们的课程一方就可主动声明” inverse="true"” (具体hibernate怎么配置请参看《我的O/R MAPPING (HIBERNATE)方法小结》)那么页面有可能是这样:
[img]http://www.iteye.com/upload/attachment/34420/8494f102-c10a-3c0b-9351-e2cbd1aaa23f.gif[/img]
下面有一个多选框(当然可以是其他元素,可自由替换)来维护多对n的关系。在维护学生的时候维同时维护和课程之间的关系。但是对于课程的维护就无需维护关系了,即课程的维护页面就没有那个多选框了。

再如:聚合关系
课程和课程安排是聚合关系,课程安排组成了课程,课程安排离开了课程不存在意义(这通常说明课程安排不会有自己单独的增,删,改,查页面,而对它得增,删,改,查通常通过课程来完成)这个时候要没课程安排是一个hibernate组建,也可以是一个一对多的关联关系并且同时配置cascade="all-delete-orphan"/"all"和fetch="join" lazy="false"。也就是说查看课程通常同时查看课程安排,课程安排的操作通过课程的操作级联来完成。这个时候页面通常是这样:
[img]http://www.iteye.com/upload/attachment/34418/c9304f85-63e5-3957-b623-e2b5ed3ad518.gif[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值