您的位置:首页 > 其它

项目1:ItcastOA(3):流程说明:实现一组功能的步骤

2014-10-17 21:26 288 查看
(一)、流程说明:实现一组功能的步骤

1、充分了解需求,包括所有的细节,需要知道要做一个什么样的功能。

2、设计实体/表

正向工程:设计实体、映射文件->建表

反向工程:设计表->映射文件、实体

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字段,年龄是在显示时实时计算出来的。

完成、



(三)、写javabean

role.java:

private Long id;
private String name;
private String description;
private Set<User> users = new HashSet<User>();
/*
* 知识点:为了方便,对User初始化,初始化后不会有空指针异常
* */

user.java:

private Long id;
private Department department;
private Set<Role> roles = new HashSet<Role>();

private String loginName; // 登录名
private String password; // 密码
private String name; // 真实姓名
private String gender; // 性别
private String phoneNumber; // 电话号码
private String email; // 电子邮件
private String description; // 说明


department.java:

private Long id;
private Set<User> users = new HashSet<User>();
private Department parent;
private Set<Department> children = new HashSet<Department>();

private String name;
private String description;


(四)、写映射文件

user.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="cn.itcast.oa.domain">

<class name="User" table="itcast_user">
<id name="id">
<generator class="native"/>
</id>
<property name="loginName"/>
<property name="password"/>
<property name="name"/>
<property name="gender" />
<property name="phoneNumber"/>
<property name="email"/>
<property name="description"/>

<!-- department属性,本类与Department的多对一 -->
<many-to-one name="department" class="Department" column="departmentId"></many-to-one>

<!-- roles属性,本类与Role的多对多 -->
<set name="roles" table="itcast_user_role">
<key column="userId"></key>
<many-to-many class="Role" column="roleId"></many-to-many>
</set>

</class>

</hibernate-mapping>


Role.hbm.xml

<class name="Role" table="itcast_role">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="description"/>

<!-- users属性,本类与User的多对多 -->
<set name="users" table="itcast_user_role">
<key column="roleId"></key>
<many-to-many class="User" column="userId"></many-to-many>
</set>
<!-- privileges属性,本类与Privilege的多对多 -->
<set name="privileges" table="itcast_role_privilege">
<key column="roleId"></key>
<many-to-many class="Privilege" column="privilegeId"></many-to-many>
</set>
</class>


department.hbm.xml

<class name="Department" table="itcast_department">
<id name="id">
<generator class="native" />
</id>
<property name="name" />
<property name="description" />

<!-- users属性,本类与User的一对多 -->
<set name="users">
<key column="departmentId"></key>
<one-to-many class="User" />
</set>

<!-- parent属性,本类与Department(上级)的多对一 -->
<many-to-one name="parent" class="Department" column="parentId"></many-to-one>

<!-- children属性,本类与Department(下级)的一对多 -->
<set name="children" cascade="delete">
<key column="parentId"></key>
<one-to-many class="Department" />
</set>

</class>


模板:

多对一:

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

一对多:

<set name="">

<key column=""></key>

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

</set>

多对多:

<set name="" table="">

<key column=""></key>

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

</set>

****************************************

Hibernate实体映射

1,写注释

格式为:?属性,表达的是本对象与?的?关系。

例:“department属性,本对象与Department的多对一”

2,拷模板:

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后缀。

(五)、建表

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: