一般情况下的实体设计,Struts2,String,hibernate快速准确的从零开始实现增删改查功能

来源:互联网 发布:淘宝卖灵符 法律 编辑:程序博客网 时间:2024/04/27 08:13

1、流程说明:实现一组功能的步骤

1,充分了解需求,包括所有的细节,需要知道要做一个什么样的功能
2,设计实体/表
正向工程:设计实体、映射文件、建表
反向工程:设计表 、映射文件、实体
3,分析功能
分析到每个请求的粒度。
得到的结果是我们需要处理多少种请求,其中每种请求对应一个Action方法。
4,实现功能:
1,创建Action,并定义出其中的方法。
2,实现Action方法,并创建出所用到的新的Service方法。
3,实现Service方法,并创建出所用到的新的Dao方法。
4,实现Dao方法。
5,创建并完成JSP页面。
5,测试、运行

例子:
增删改查一共4个功能,需要6种请求

作用         方法名 返回值对应的页面列表   list toListlist.jsp增加页面  addUI addUIadd.jsp增加add toListlist.jsp删除delete deletelist.jsp修改页面editUI editedit.jsp修改edit tolistlist.jsp


struts.xml
<action name="role_*" class="roleAction" method="{1}"><result name="list">/WEB-INF/jsp/roleAction/list.jsp</result><result name="saveUI">/WEB-INF/jsp/roleAction/saveUI.jsp</result><result name="tolist" type="redirectAction">role_list</result></action>



2、流程总结:设计实体

1,有几个实体?
一般是一组增删改查对应一个实体。
2,实体之间有什么关系?
一般是页面引用了其他的实体时,就表示与这个实体有关联关系。
3,每个实体中都有什么属性?
1,主键。
2,关联关系属性。在类图中,关联关系是一条线,有两端,每一端对应一个表达此关联关系的属性。有几个端指向本类,本类中就有几个关联关系属性。
3,一般属性。分析所有有关的页面,找出表单中要填写的或是在显示页面中要显示的信息等。
4,特殊属性:为解决某问题而设计的属性。比如要显示年龄,但不会设计一个int age字段,而是一个Date birthday字段,年龄是在显示时实时计算出来的。

3、流程总结:Hibernate实体映射

1,写注释
格式为:?属性,表达的是本对象与?的?关系。
例:“department属性,本对象与Department的多对一”
2,拷模板:
多对一  <many-to-one name=“” class=“” column=“”/>一对多   <set name="">                <key column=""></key>                <one-to-many class=""/>        </set>多对多     <set name="" table="">             <key column=""></key>             <many-to-many class="" column=""/>           </set>

3,填空:
name属性:属性名(注释中的第1问号)
class属性:关联的实体类型(注释中的第2个问号)
column属性:
<many-to-onecolumn="..">:一般可以写成属性名加Id后缀,如属性为department,则column值写成departmentId。
一对多中的<keycolumn="..">:从关联的对方(对方是多对一)映射中把column值拷贝过来。
多对多中的<keycolumn=“..”>:一般可以写成本对象的名加Id后缀,如本对象名为User,则写为userId。
多对多中的<many-to-manycolumn=“..”>:一般可以写为关联对象的名称加Id后缀。
0 0