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

    我在《一个优秀框架的评判标准和方向》说了,一个优秀的企业级开发框架——以用户需求为向导的框架——应该至少实现crudworkflowreport三个范畴的常见需求的快速开发。

       Crud范畴的快速开发具体怎么做呢?这里提供一种我的实现方式,它采用了hibernate这个orm框架。

       Crud;说白了就是一个实体对象的增、删、改、查。是我们最常见的功能。做Crud的时候oo的思想特别有用。

       通过分析得到我们的实体对象和它们之间得关系。那么我们的功能无外呼就是维护实体对象和对象之间的关系。

       具体怎么来阐述我的思路呢?

       页面是功能得直接表现。我们就从页面说。(实体对象和对象之间的关系是本质,而页面是本质的体现。不同实体的不同关系,在页面上会有一定的表现。这个就上是生病了去看医生,医生通常是从你的表征上来看你得了什么病。)

举个例子:

例如:多对一的关联关系:

如班级和系别的关系,多个班级属于一个系。关系得主控方通常在多得一方。(具体hibernate怎么配置请参看《我的O/R MAPPING (HIBERNATE)方法小结》)那么我们的页面就是这样:

上面有一个选择,点击后弹出系别列表,可以选择系别。当然也可以是一个下拉框。可以让程序员根据需要用tag方便替换。

 

又如:多对多关系(或多对一关系主控方在一的一方)

如学生选客,学生和课程多对多,主控方在学生,这个时候我们的课程一方就可主动声明inverse="true"” (具体hibernate怎么配置请参看《我的O/R MAPPING (HIBERNATE)方法小结》)那么页面有可能是这样:

下面有一个多选框(当然可以是其他元素,可自由替换)来维护多对n的关系。在维护学生的时候维同时维护和课程之间的关系。但是对于课程的维护就无需维护关系了,即课程的维护页面就没有那个多选框了。

 

再如:聚合关系

课程和课程安排是聚合关系,课程安排组成了课程,课程安排离开了课程不存在意义(这通常说明课程安排不会有自己单独的增,删,改,查页面,而对它得增,删,改,查通常通过课程来完成)这个时候要没课程安排是一个hibernate组建,也可以是一个一对多的关联关系并且同时配置cascade="all-delete-orphan"/"all"fetch="join" lazy="false"。也就是说查看课程通常同时查看课程安排,课程安排的操作通过课程的操作级联来完成。这个时候页面通常是这样:

下面的列表在更新课程的时候级联更新课时安排。

由于fetch="join" lazy="false"我们加载课程的时候同时加载了课程安排,由于cascade="all-delete-orphan"/"all"我们修改课程的时候同时维护课程安排。

 

那我的的思路就是

1》  oo建模,得到实体对象和对象之间的关系

2》  配置hibernate配置文件

3》  根据配置文件生成功能默认实现,包括页面,业务逻辑等等。页面元素采用tag的形式。程序员可以根据需求替换。而代码实现尽量细力度,程序员只需要修改个性的那一部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值