《框架使用规范.doc》由会员分享,可在线阅读,更多相关《框架使用规范.doc(54页珍藏版)》请在三一办公上搜索。
1、框架使用规范关于本文档主 题框架使用规范说明本文档用于描述在框架中如何进行基本功能的开发。简述了开发流程以及需要注意的事项。适用对象项目经理,开发组,维护组,新员工入职培训修 订 历 史 版 本章 节类 型日 期作 者说 明说明:类型创建(C)、修改(U)、删除(D)、增加(A);评 审 记 录 角 色签 名日 期说 明审 核会 签标准化审查批 准目 录关于本文档2一、 单表增删改查41建立数据库表TR_STU42建立Mode类83建立表和Model类的映射关系104建立dao类115建service类126 建立action类157 建立dao,service,action的spring配置
2、文件188 配置struts-students.xml219 bsp_dictmgr,字典表的配置2410用表BSP_QUERYCONFIG配置查询语句2611 用表BSP_QUERYINPARAM进行查询参数的配置2912 查询页面qryStudents.jsp;3013 增,改,查看页面edtStudents.jsp;3314 系统左侧目录树40二、 一对多关联411 建立主子表422 建立医疗机构科室的单表增删改查433 建立医生信息的单表增删改查444定义子表的查询类继承基类CommonQueryAction.java444.1 单表查询时直接使用基类CommonQueryAction
3、.java444.2 自定义子表的查询类继承自基类CommonQueryAction.java444.3 在applicationContext-action.xml里配置管理自定义的查询类,如图:454.4 在struts-employee.xml里对医生信息查询的配置,如下:465 医生信息增加/修改页面加上隐藏项46三、 多行添加461 多行添加说明462 建立子表(医生的教育和工作经历信息)473 在主表的DAO,SERVICE,ACTION中增加对子表的处理方法473.1在主表DAO中增加对子表的操作方法473.2 在主表SERVICE中增加对子表的操作方法483.3 修改主表ACT
4、ION中的方法493.4 编辑页面edtEmployee.jsp51四、 统计531 统计配置表BSP_REPORT_CONFIG53五、 导出CSV541 导出CSV配置表BSP_EXPORT_ONE_MANY(该表处理有主次卡,如果没有则不需要配置,只需在BSP_QUERYCONFIG中配置对应的SQL语句)54一、 单表增删改查约定:系统名称为培训范例,代码为TR业务名称为学生信息,代码为STU以学生信息录入为例,说明单表增删改查业务的建立过程。1建立数据库表TR_STU 表TR_STU的字段,类型如下表:字段类型注释ID_STUVARCHAR2(40)主键NUM_STUVARCHAR2
5、(20)编号SEXVARCHAR2(2)性别(码表TR_DD_SEX)BIRTHDAYDATE生日NATIONVARCHAR2(10)民族(码表TR_DD_NATION)ID_CARDVARCHAR2(18)身份证TELEPHONEVARCHAR2(20)电话ZONEVARCHAR2(10)地区编码ORGVARCHAR2(30)机构编码ADDRESSVARCHAR2(200)地址GRADEVARCHAR2(10)级别ISPOORVARCHAR2(20)贫困与否HOBBYVARCHAR2(100)兴趣(码表TR_DD_HOBBY)ENTRYDATEDATE入学日期HEALTHVARCHAR2(1
6、0)健康 (码表TR_DD_HEALTH)HEALTHDETAILVARCHAR2(400)健康详情HEALTHCHECKDATEDATE检查日期POSTNUMVARCHAR2(6)邮编EMAILVARCHAR2(40)EmailREMARKVARCHAR2(100)备注NAMEVARCHAR2(20)姓名TM_CREATEDATE创建日期TM_UPDATEDATE更新日期EMPID_CREATEVARCHAR2(20)创建者EMPID_UPDATEVARCHAR2(20)修改者建表可参考如下语句(本语句只供参考,语句中使用的表空间并非指定,可自定义适合的表空间):- Create table
7、create table TR_STU( ID_STU VARCHAR2(40) not null, NUM_STU VARCHAR2(20), SEX VARCHAR2(2), BIRTHDAY DATE, NATION VARCHAR2(10), ID_CARD VARCHAR2(18), TELEPHONE VARCHAR2(20), ZONE VARCHAR2(10), ORG VARCHAR2(30), ADDRESS VARCHAR2(200), GRADE VARCHAR2(10), ISPOOR VARCHAR2(2), HOBBY VARCHAR2(100), ENTRYDA
8、TE DATE, HEALTH VARCHAR2(10), HEALTHDETAIL VARCHAR2(400), HEALTHCHECKDATE DATE, POSTNUM VARCHAR2(6), EMAIL VARCHAR2(40), REMARK VARCHAR2(400), NAME VARCHAR2(20) not null,TM_CREATE DATE,TM_UPDATE DATE,EMPID_CREATE VARCHAR2(20),EMPID_UPDATE VARCHAR2(20)tablespace TB pctfree 10 initrans 1 maxtrans 255
9、storage ( initial 64K minextents 1 maxextents unlimited );- Add comments to the table comment on table TR_STU is 学生信息表;- Add comments to the columns comment on column TR_STU.ID_STU is PK;comment on column TR_STU.NUM_STU is 编号;comment on column TR_STU.ZONE is 地区;comment on column TR_STU.ORG is 机构;- C
10、reate/Recreate primary, unique and foreign key constraints alter table TR_STU add constraint PK_TR_STU primary key (ID_STU) using index tablespace TB pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );2建立Mode类在src.ie.tr.model下建Students.java,代码如下(省略了部分代码):pac
11、kage ie.tr.model;import java.util.Date;/* * Students Model类 * author zhl * */public class Students implements java.io.Serializable private String idStu;private String name;private String numStu;private String sex;private Date birthday;private String nation;private String idCard;private String teleph
12、one;private String zone;private String org;private String address;private String grade;private String isPoor;private String hobby;private String health;private Date entryDate;private String healthDetail;private String postNum;private String email;private Date healthCheckDate;private String remark;pu
13、blic String getIdStu() return idStu;public void setIdStu(String idStu) this.idStu = idStu;public String getName() return name;public void setName(String name) this.name = name;/省略了部分代码说明:(1)表TR_STU中的字段和Model中的变量名一一对应,且每个变量都要生成getter,setter方法(2)类,文件的命名要规范,Model的映射文件命名为Students.hbm.xml;Service类命名为Stud
14、entsService.java,StudentsServiceImpl.java,Action类命名为StudentsAction.java,查询页面命名为qryStudents.jsp,编辑页面命名为:edtStudents.jsp等3建立表和Model类的映射关系在src.ie.tr.model下建Students.hbm.xml,此文件规定了表中的字段和Model中的变量名一一对应关系,如下(省略了部分代码):!DOCTYPE hibernate-mapping PUBLIC -/Hibernate/Hibernate Mapping DTD 3.0/EN 说明:(1)文件头部的内容不
15、可随意改动;(2)注意xml文件里各个属性都有开始和结束标记;(3)注意开头要给出表名,Model类的路径class name=ie.tr.model.Students table=TR_STU;中是model类中的属性和表的每列一一对应关系;(4)需在配置文件里给出表的主键生成方式,表中每条记录要有一个唯一的标识,为保持主键唯一性,避免并发时出现重复主键,因而主键的生成方式非常关键,Hibernate提供多种主键生成机制,uuid机制基于128 位唯一值产生算法生成16 进制数值(编码后以长度32 的字符串表示)作为主键,是较常用的,尤其适合大量并发操作时避免主键重复。(5) 数据库里的数据
16、类型对应的不同的java数据类型,较常用的对应关系有:DB2JavaVarcharStringDateJava.util.Date4建立dao类在src.ie.tr.dao下建立StudentsDao.java,代码如下package ie.tr.dao;import ie.bsp.frame.dao.CommonBaseDao;/* * dao类 * author zhl * */public interface StudentsDao extends CommonBaseDao在src.ie.tr.dao下建立StudentsDaoHib.java,代码如下package ie.tr.da
17、o.hib;import ie.bsp.frame.dao.hib.CommonBaseDaoHib;import ie.tr.dao.StudentsDao;/* * Dao实现类 * author zhl * */public class StudentsDaoHib extends CommonBaseDaoHib implements StudentsDao public StudentsDaoHib() super();5建service类在src.ie.tr.service下建StudentsService.java,接口中定义业务方法,如下:package ie.tr.servi
18、ce;import ie.tr.model.Students;/* * Service接口 * author zhl * */public interface StudentsService /* * param model */public void save(Students model);/* * param model */public void edit(Students model);/* * param id * return */public Students get(String id);/* * param id */public void delete(String id
19、);src.ie.tr.service.impl下建StudentsServiceImpl.java实现接口中的方法 ,如下:package ie.tr.service.impl;import ie.tr.dao.StudentsDao;import ie.tr.model.Students;import ie.tr.service.StudentsService;/* * service实现类 * author zhl * */public class StudentsServiceImpl implements StudentsService/* * */private StudentsD
20、ao dao;public StudentsDao getDao() return dao;public void setDao(StudentsDao dao) this.dao = dao;/* (non-Javadoc) * see ie.tr.service.StudentsService#delete(java.lang.String) */public void delete(String id) /dao.excuteSql(delete from TR_STU t where t.id_stu=+id+);Students model=(Students)dao.get(Stu
21、dents.class, id);dao.delete(model);/* (non-Javadoc) * see ie.tr.service.StudentsService#edit(ie.tr.model.Students) */public void edit(Students model) dao.edit(model);/* (non-Javadoc) * see ie.tr.service.StudentsService#get(java.lang.String) */public Students get(String id) Students model=(Students)d
22、ao.get(Students.class, id);return model;/* (non-Javadoc) * see ie.tr.service.StudentsService#save(ie.tr.model.Students) */public void save(Students model) dao.save(model);6 建立action类在src.ie.tr.action下建StudentsAction.java,action类继承基类BaseEditAction。注意:类中的对象和属性,都要生成相应的getter,setter方法;package ie.tr.acti
23、on;import ie.bsp.frame.action.BaseEditAction;import ie.bsp.frame.exception.GeneralException;import ie.tr.model.Students;import ie.tr.service.StudentsService;/* * Action类 * author zhl * */public class StudentsAction extends BaseEditActionStudentsService service;Students students;String id;public Stud
24、entsService getService() return service;public void setService(StudentsService service) this.service = service;public Students getStudents() return students;public void setStudents(Students students) this.students = students;public String getId() return id;public void setId(String id) this.id = id;/
25、* (non-Javadoc) * see ie.bsp.frame.action.BaseEditAction#doAddParentInput() */Overridepublic void doAddParentInput() throws GeneralException /* (non-Javadoc) * see ie.bsp.frame.action.BaseEditAction#doAddParentSubmit() */Overridepublic void doAddParentSubmit() throws GeneralException / TODO Auto-gen
26、erated method stubservice.save(students);/* (non-Javadoc) * see ie.bsp.frame.action.BaseEditAction#doAudit() */Overridepublic void doAudit() throws GeneralException / TODO Auto-generated method stub/* (non-Javadoc) * see ie.bsp.frame.action.BaseEditAction#doDelteParentSubmit() */Overridepublic void
27、doDelteParentSubmit() throws GeneralException service.delete(id);/* (non-Javadoc) * see ie.bsp.frame.action.BaseEditAction#doEditParentInput() */Overridepublic void doEditParentInput() throws GeneralException / TODO Auto-generated method stubstudents=service.get(id);/* (non-Javadoc) * see ie.bsp.fra
28、me.action.BaseEditAction#doEditParentSubmit() */Overridepublic void doEditParentSubmit() throws GeneralException / TODO Auto-generated method stubservice.edit(students);/* (non-Javadoc) * see ie.bsp.frame.action.BaseEditAction#doViewParentSubmit() */Overridepublic void doViewParentSubmit() throws Ge
29、neralException / TODO Auto-generated method stubthis.doEditParentInput();7 建立dao,service,action的spring配置文件在src.ie.tr.resources.spring下建立applicationContext-dao.xml; applicationContext-service.xml; applicationContext-action.xml;代码如下:说明:(1) applicationContext-dao.xml中配置dao的实现;applicationContext-service
30、.xml中配置service类中用到的dao对象的实现;applicationContext-action.xml中配置action类中用到的service对象的实现;(2) applicationContext-service.xml中引用的bean名称必须与applicationContext-dao.xml中的名称相同;applicationContext-action.xml中引用的bean名称必须与applicationContext-service.xml中的名称相同;如相同颜色所标识:applicationContext-dao.xmlapplicationContext-ser
31、vice.xmlapplicationContext-action.xml说明:(1) 配置文件中头部定义和声明的内容一般不可随意改动;(2) Spring通过配置文件applicationContext.xml来管理Bean,举例如下: class给出的是类的路径 ,scope=prototype设置bean的作用域,让spring每次请求创建一个bean;property属性来设置这个action类中用到的service对象,由“studentsService”来实例化这个action类中的service对象;其它配置文件的原理与此相同;8 配置struts-students.xml在src.ie.tr.resources.struts2路径建struts-students.xml;配置当action中各个方法执行时页面跳转的路径;注意查询action的配置里需配置queryCode和resultName,其值应该与查询页面qryStudents.jsp一致。!DOCTYPE struts PUBLIC -/Apache Software Foundation/DTD Struts Configuration 2.0/EN http:/str