项目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:
user.java:
department.java:
(四)、写映射文件
user.hbm.xml
Role.hbm.xml
department.hbm.xml
模板:
多对一:
<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后缀。
(五)、建表
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后缀。
(五)、建表
相关文章推荐
- 项目1:ItcastOA(5):流程说明:实现一组功能的步骤(一)
- 项目1:ItcastOA(4):流程说明:岗位管理分析功能,增删改查
- 流程说明:实现一组功能的步骤
- SSH开发项目:实现一组功能的步骤
- 流程总结:实现增删改查一组功能的步骤
- 实战3--实现一组功能的步骤
- 实现一组功能的步骤
- 项目1:ItcastOA(2):日志说明、BaseDao和BaseDaoImpl的设计
- ssh框架实现一组功能的步骤
- 实现一组功能的步骤
- 实现一组功能的步骤
- OA项目之一组功能的实现
- 实现一组功能的步骤
- angular项目流程功能实现
- angular项目流程功能实现
- 实现一组功能的步骤及模板
- 项目验收流程说明
- ArrayList和LinkedList的区别是什么?举例说明LinkedList可实现的功能
- 在一个项目中所有的Ajax功能用一个页面来实现
- 使用Spring中的IoC功能来实现我们所开发项目系统的国际化