=============== 步骤 ================
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
服务器端验证