天天看点

OA中项目关系,实体设计,映射实体,增删改查

=============== 步骤 ================

1,充分了解需求(包括所有的细节):分析页面等。

2,设计实体/表

 正向工程:设计实体 --> 建表(推荐):设计实体 --> javabean --> hbm.xml --> 建表

 反向工程:设计表 --> 实体

3,分析功能到每个请求的粒度。

 得到的结果是我们需要处理多少种请求,每种请求对应一个action方法。

4,实现功能:

 1,创建action,并定义出其中的方法。

 2,实现action方法,并创建出所用到的新的service方法。

 3,实现service方法,并创建出所用到的新的dao方法。

 4,实现dao方法。

 5,创建并完成jsp页面。

5,单元测试与运行测试

========= 系统管理模块 ==========

增删改查 + 树状结构 + 表单验证。

========= 设计实体 ==========

1,有几个实体?

 一般是一组增删改查对应一个实体。

2,实体之间有什么关系?

 一般是页面引用了其他的实体时,就表示与这个实体有关联关系。

3,每个实体中都有什么属性?

 1,主键

 2,关联关系属性

  在类图中,关联关系是一条线,有两端,每一端对应一个表达此关联关系的属性。

  有几个端指定本类,本类中就有几个关联关系属性。

 3,一般属性:

  分析所有有关的页面,找出表单中要填写的或是在显示页面中要显示的信息等。

 4,特殊属性:为解决某问题而设计的属性。

  比如要显示年龄,但不能设计一个int age字段,而是一个date birthday字段,年龄是显示时实时计算出来的。

========= 映射实体 ==========

1,写注释:

 格式为:?属性,表达的是本对象与?的?关系。例:<!-- department属性,本对象与department的多对一 -->

2,拷模板:

 多对一:

  <many-to-one name="" class="" column=""></many-to-one>

 一对多(set):

  <set name="">

   <key column=""></key>

   <one-to-many class=""/>

  </set>

 多对多(set):

  <set name="" table="">

   <many-to-many class="" column=""></many-to-many>

3,填空:

 name属性:属性名(注释中的第1问号)

 class属性:关联的实体类型(注释中的第2个问号)

 column属性:

  <many-to-one column="..">:一般可以写成属性名加id后缀,如属性为department,则column值写成departmentid。

  一对多中的<key column="..">:从关联的对方(对方是多对一)映射中把column值拷贝过来。

  多对多中的<key column="..">:一般可以写成本对象的名加id后缀,强本对象名为user,则写为userid。

  多对多中的<many-to-many column="..">:一般可以写为关联对象的名称加id后缀。

================= 分析增删改查功能 ==================

增删改查共4个功能,6个请求,所以需要在action中有6个对应的处理方法。

作用  方法名  返回值  页面

------------------------------------------

列表  list()  list  list.jsp

删除  delete() tolist  actionname="roleaction_list" type="redirectaction"

添加页面 addui()  addui  addui.jsp

添加  add()  tolist

修改页面 editui() editui  editui.jsp

修改  edit()  tolist

    转发 重定向

--------------------------------

请求数   1  2

浏览器地址栏 不变 变

action中添加功能的步骤:

 // 1,新建对象并设置属性(也可以使用model,但需要设置未封装的属性)

 // 2,保存到数据库

action中修改功能的步骤:

 // 1,从数据库中取出原对象

 // 2,设置要修改的属性

 // 3,更新到数据库

客户端验证:js

服务器端验证