OA项目的计划和开发和开发流程

1 建立界面原型

center.jsp main.jsp left.jsp ….

2 建立相关文件文件

定义包名:com.oa.(model(模型层), dao(数据访问层), service() ,Action …)

确定Model 层的实体类(有共同属性的实体应该继承同一个父类(共同属性放在父类中))

(Company,Department, Position,Person,父类Party)

确定Service接口方法()
确定Dao接口定义方法()

Struts.xml applicationContext-common.xml databaseContext.xml …

建立数据库,(可以根据model的映射文件.hbm.xml)来自动生成数据库

建立测试文件,注意测试文件(建立一个新的source folder下,包名和src下的工程包名相同,这样就可以省去导入相关包)

项目的命名原则(采用驼峰标志)

项目的包名:com.oa.(dao/dao.impl,model,service/service.impl,vo(PageVo页面模型对象),web,web.action)

辅助包名:com.oa.util

实体的类名:(模型model)

父类:Party(id,description,parent,name,children)

子类:Person(job)

Company(tel)

Department()

Position()

建立父类的映射文件:Party.hbm.xml

注意:继承映射(单表映射是最常用的)

Dao层:对实体进行CRUD(添删改查)

命名:接口:实体名+Dao(XXXDao);

方法:动作+对象(saveXXX(Object );delXXX(Object)…);

方法的操作对象应该每一个实体对象,但是为了程序的灵活性,操作对象定义成父类的对象,这样更有利于代码的维护;

接口:PartyDao(saveCompany();delCompany();updateCompany;)

实现接口的类名:PartyDaoLmpl 并且继承父类(包括全部CURD)

类中方法名:实现接口中定义的方法即可;

注意查找方法中:findByLd(int id){}

(根据配置文件中的组件扫描,来确定注解@(“”))

Service层:命名:实体+Service(PartyService)

接口中的方法名:XXXService

实现接口的类名:

Junit:进行简单的测试:(测试要通过Service层进行测试)

注意:测试时,先要拿到工厂

注意:抽象的分页:

web2.0

public PageVo findPaging (String hql,int offset, int pagesize,Object…params);

因为每一次查询的都不一样,hql不确定(Hql不是查询总记录数),参数也不确定,因此定义成动态参数;

因此这个hql语句只能动态生成。(通过拼语句)

拼字符串这个方法,只有自己调用,因此定义成私有的private;

ThreadLocal模式:

为了在分页查询中,简化传参数,应用ThreadLocal模型,就可以解决这个问题,因为在分页的过程中,Service层根本不需要,offset和pagesize这两个参数,只有在Dao层,才会用到这两个参数。因此为了简化,用ThreadLocal封装这两个参数;

SystemContext这个对象可以封装这两个参数;

时间: 2024-10-13 17:05:37

OA项目的计划和开发和开发流程的相关文章

[deviceone开发]-企业OA项目开源分享

一.简介 是一个真实的企业OA项目改造的开源项目,几乎涵盖了所有常用的组件,包括环信实现在线聊天等功能,类似微信的朋友圈功能,自定义的智能搜索等,而且这个是真实的通过Http链接后台web服务,里面很多地方都值得参考和学习. 二.效果图      三.相关下载 https://github.com/do-project/OA-Sample 四.相关讨论 http://bbs.deviceone.net/forum.php?mod=viewthread&tid=123 五.更多案例 http://

智能家居项目(1):软件开发流程

结合公司开发过的产品以及对自学知识的总结,整理出此系列文章  .侧重点还是在软件部分. 公司开发某个项目,肯定是为了盈利赚钱.开发的项目无非就是自己的产品或者承接甲方的开发任务. 大体的流程可以分为几个部分或阶段: 1.需求说明书 预期想要一个什么功能,达到什么样的效果.有的客户也说不明白具体的东西,描述不清.需要加强沟通交流,确定最终的模型.一般情况下是甲方就提供好了的.关键部分大致如下: 监控功能 监控室内温度,监控红外传感器,以阻塞或异步的方式对红外传感器进行检测,如果红外传感器探测到有不

APP开发的基本流程

一个独立App开发人的自白:做APP就是一场赌局,你要会押注 下面我们就直接来看下APP从业者必知的整个APP开发标准流程. 一般的APP开发及上线流程 步骤如下: 首先,制作一款APP,必须要有相关的idea(主意),也就是说,第一步是APP的idea(主意)形成. 其次,就是通过那些idea来进行APP的主要功能设计以及大概界面构思和设计. App的开发是一个不断推敲的过程. 首先,如果要做一款app,必须要前期进行沟通,初步表明此款app要实现的效果,属于哪个类型的app.在功能和实现价值

APP定制开发的完整流程

下面要介绍的APP定制开发的完整流程,即使是搞程序开发的也未必知道,因为这是一个产品经理完整详细的总结写出来的.流程不仅包括了开发标准流 程,还包括了上线发布等阶段.需要在这里提醒的是,下面要说的是APP的定制开发,而不是其他的模板制作流程.一个移动APP项目研发规模可大可小,但都 离不开以下几个成员:产品经理.ui设计师.前端开发.后端开发.测试等.如何合理安排项目成员工作.确保项目顺利进行呢?一个清晰合理的项目研发流程控 制很重要. 我们可以按工作的性质不同先把APP的项目开发分成三个阶段,

SDP软件快速开发平台 ---- 开发平台详细介绍

一.前言   在企业间的商业竞争越来越激烈的今天,如何快速实现客户需求,如何快速便捷的开发.修改.更新.维护软件项目系统功能,如何降低软件研发的成本,如何降低公司人员流动对软件开发项目造成的影响.如何提高团队开发效率.如何降低开发人员的技术水平要求.如何缩短开发周期.如何同时开发多个项目等等,在此目标基础上我公司研发了软件快速开发平台(Software Rapid Development Platform)工具,简称SDP.通过软件快速平台能快速便捷的设计开发生成B/S架构 html项目软件.

OA项目12:系统管理之用户管理

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 一 之前在第8节时已经将User实体及映射文件建立好了,所以设计实体已经完成了,下面来做功能了. 二 我们对照静态页面看用户管理页面分析发现,增删改查功能跟之前一样,多了一个初始化密码的请求.当然,这不是问题,下面开始做功能吧! 三 开发: 1.写action及struts2映射,具体如下: 1)UserAction.java: 1 package cn.

OA项目2:环境搭建之ssh框架整合

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频的文字版,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 今天做Spring+Hibernate+Struts2整合. 一 Struts2与Spring的整合. 1.整合之前Struts2例子: 在src下建立一个包,包名为:cn.clear.oa.test,在包下面建立一个类TestAction.java,内容如下: 1 package cn.clear.oa.test; 2 3 import com.opensymph

OA项目1:环境搭建之数据库创建与环境添加

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频的文字版,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 一   指定数据库:Mysql database:oa 建库语句:create database oa default character set utf8 二   指定ide开发工具:MyEclipse 项目名称:新建web工程,名字为:OA,并设置项目工程编码:utf-8 环境所用主要技术框架:JUnit4,Struts2.3.15.1,Hibernate3.6

OA项目15:权限管理实体设计及映射

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 一 实体设计: 1.权限实体设计: 1)属性设计: 主键:id 关联属性:Set<Role> roles,Set<Privilege> privileges,Privilege parent,Set<Privilege> children 一般属性:name,url 特殊属性:暂无 2)涉及到3个实体:User(用户),Role(