蓝云ERP系统项目笔记———软件设计与环境搭建(1)

1、ERP简介

1.1、什么是ERP

ERP 系统是企业资源计划(Enterprise Resource Planning )的简称,是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。ERP 系统集信息技术与先进管理思想于一身,成为现代企业的运行模式,反映时代对企业合理调配资源,最大化地创造社会财富的要求,成为企业在信息时代生存、发展的基石。它对于改善企业业务流程、提高企业核心竞争力具有显著作用。ERP 行业人才稀缺成为 SAP 发展的制约因素之一,鉴于此,国 内 的 ERP 培 训 行 业 逐 渐 开 始 发 展 。

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第1张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第2张图片

该ERP系统定位的行业是商贸行业

 项目中我们需要熟悉以下基本概念:

   供应商:你的卖家,提供给你原材料的商家
   客户: 你的买家,你要销售的对象
   采购: 买东西
   销售: 卖东西
   订单: 采购订单 销售订单

2、软件项目常识

软件开发流程:
需求分析--->软件设计--->编码---->测试---->上线---->系统维护

2.1、需求分析与需求规格说明书

所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,在软件工程当中的“需求分析”就是确定要计算机“做什么”,要达到什么样的效果。可以说需求分析是做系统之前必做的。需求规格说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解, 使之成为整个开发工作的基础。包含硬件、功能、性能、输入输出、接口需求、警示信息、保密安全、数据与数据库、文档和法规的要求。

 2.2、软件设计与软件设计文档

软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。

软件设计文档分为《概要设计》和《详细设计》
概要设计:系统模块划分、网络拓扑图、用例图
详细设计:类图、时序图、类清单、方法清单、接口清单、表结构文档

2.3、UML语言

统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模语言。UML 因其简单、统一的特点,而且能表达软件设计中的动态和静态信息,目前已成为可视化建模语言的工业标准。
UML 从考虑系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、序列图、协作图、构件图、部署图等 9 种图。这些图从不同的侧面对系统进行描述。系统模型将这些不同的侧面综合成一致的整体,便于系统的分析和构造。尽管 UML 和其它开发工具还会设计出许多派生的视图,但上述这些图和其它辅助性的文档是软件开发人员所见的最基本的构造。

2.4、设计工具 PowerDesigner(PD) 

PowerDesigner(PD)最初由 Xiao-Yun Wang(王晓昀)在 SDP Technologies 公司开发完成。是 Sybase 的企业建模和设计解决方案,采用模型驱动方法,将业务与 IT 结合起来,可帮助部署有效的企业体系架构,并为研发生命周期管理提供强大的分析与设计技术。PowerDesigner 独具匠心地将多种标准数据建模技术(UML、业务流程建模以及市场领先的数据建模)集成一体,并与 .NET、WorkSpace、PowerBuilder、Java™、Eclipse 等主流开发平台集成起来,从而为传统的软件开发周期管理提供业务分析和规范的数据库设计解决方案。
演示:使用 PD 完成“活动图”的绘制
活动图就是描述业务流程的图

3、软件设计

3.1、类图设计(实体类)

所谓类图是用于描述类的名称属性方法以及类与类之间关系的 UML 图。
演示:使用 PD 完成“类图”的绘制

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第3张图片

3.2、数据库设计

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第4张图片

 蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第5张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第6张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第7张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第8张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第9张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第10张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第11张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第12张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第13张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第14张图片

3.3、命名规范

 (1)系统分层及包命名规范

 实体类层:cn.newbie.erp.entity

 数据访问层:

                   cn.newbie.erp.dao(接口)

                   cn.newbie.erp.dao.impl(类)

 业务逻辑层:cn.newbie.erp.biz(接口)、cn.newbie.erp.biz.impl(类)

action层:cn.newbie.erp.action

(2)类与接口命名规范

 实体类、表名称 首字母大写  dep Dep

 数据访问层接口 :IDepDao

数据访问类:DepDao

业务逻辑层接口:IDepBiz

业务逻辑类:DepBiz

action类:DepAction

4、系统架构:SSH2+easyUI

4.1、流行的前后端开发

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第15张图片

前端:包括 HTML 、JS 、CSS 、图片 ,作用是展示数据和采集数据。

后端:数据访问层、业务逻辑层、控制层(action),作用处理业务逻辑、进行
数据存储和读取。

前后端开发的优点:
(1)分工明确,有利于提高开发速度
(2)项目更换开发语言,工作量较少。
(3)增强用户的体验。
前端:所关心的问题是如何展示数据和如何采集用户输入的数据
后端:数据的逻辑处理

4.2、前端-----EasyUI

对于企业及的开发项目,或是网站的后台部分,我们可以使用前端框架来实现,现在目前比较主流的前端框架有 easyUI BUI miniUI 等。其中 easyUI 在企业开发中市场份额最大,应用最广泛,使用起来也比较容易上手。我们在本次项目中就采用 easyUI 作为前端框架。
简介:easyui 是一种基于 jQuery 的用户界面插件集合。使用 easyui 你不需要写很多代码,你只需要通过编写一些简单 HTML 标记,就可以定义用户界面。
easyui 是个完美支持 HTML5 网页的完整框架。节省您网页开发的时间和规模,很简单但功能强大的。
我们在初学 easyUI 时,可以用到哪学到哪,我们在项目进展过程中或以查文
档的方式,循序渐进地掌握 easyUI。

推荐学习网址:http://www.jeasyui.net

4.3、后端--SSH2集成框架

SH2 即 struts2 +spring +hibernate
Struts2 : Struts 2 是 Struts 的下一代产品,是在 struts 1 和 WebWork 的技术基础上进行了合并的全新的 Struts 2 框架。其全新的 Struts 2 的体系结构与 Struts1 的体系结构差别巨大。Struts 2 以 WebWork 为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与 ServletAPI 完全脱离开,所以 Struts 2 可以理解为 WebWork 的更新产品。
Spring : Spring 是一个开源框架,Spring 是于 2003 年兴起的一个轻量级的 Java开发框架,由 Rod Johnson 在其著作 Expert One-On-One J2EE Development andDesign 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。
(配置方式)事务处理--(声明式事务)
Hibernate: Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序可以随心所欲的使用对象编程思维来操纵数据库。

5、数据库--Oracle

5.1、表空间的创建

create tablespace 表空间名称
datafile 'c:\数据文件名称.dbf'
size 100m
autoextend on
next 10m

5.2、用户与表的创建

表空间里建用户 数据库对象都是建立在用户下的。

(1)创建用户并赋权

创建用户 erpuser ,用来存储我们 ERP 系统的表

创建用户:
create user erpuser
identified by itcast
default tablespace 表空间名称
赋权:
grant dba to erpuser

(2)创建表

登陆 erpuser ,创建表

6、开发工具及环境准备

开发工具采用 Eclipse (版本 Mars.2)
JDK1.7.0.72
应用服务器:TOMCAT 7.0.52
Maven 3.3.9

6.1、安装 JDK1.7 及 Eclipse 初始环境配置

设定字符集为 UTF-8

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第16张图片

6.2、解压 Tomcat 并在 Eclipse 中配置 Tomcat

(1)将 TOMCAT 解压到 D 盘根目录

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第17张图片

(2)打开菜单 window-- showView other

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第18张图片

(3) 配置 TOMCAT 目录

点击上边的连接

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第19张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第20张图片

指定目录后,选择 JRE ,然后 Finish

(4)修改 TOMCAT 配置

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第21张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第22张图片

6.3、搭建Maven环境

(1)解压 Maven 3.3.9 到 D 盘根目录

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第23张图片

(2)配置环境变量

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第24张图片

(3)解压本地仓库

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第25张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第26张图片

(4)在 Eclipse 中配置 Maven

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第27张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第28张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第29张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第30张图片

(四)配置离线约束

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第31张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第32张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第33张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第34张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第35张图片

配置完成

7、SSH2框架搭建

7.1、创建maven父工程

(1)创建 Maven 父工程(erp_parent)

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第36张图片

 蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第37张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第38张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第39张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第40张图片

工程创建完成,将 项目必备下\配置文件 下的 pom.xml 复制到此工程


  4.0.0
  com.itheima
  erp_parent
  0.0.1-SNAPSHOT
  pom
  
  	erp_entity
  	erp_dao
  	erp_web
  	erp_biz
  
  
  
  	4.2.4.RELEASE
  	2.3.24
  	5.0.7.Final
  
  
  
  	
  		org.apache.struts
  		struts2-core
  		${struts.version}
  		
  		
  			
  				javassist
  				javassist
  			
  		
  	
  	
  		org.hibernate
  		hibernate-core
  		${hibernate.version}
  	
  	
  	
  	
  	
  	
  		org.springframework
  		spring-context
  		4.2.2.RELEASE
  	
  	
  	
  		org.apache.struts
  		struts2-spring-plugin
  		${struts.version}
  	
	
  	
  		org.springframework
  		spring-beans
  		${spring.version}
  	
  	
  		org.springframework
  		spring-core
  		${spring.version}
  	
  	
  		org.springframework
  		spring-context-support
  		${spring.version}
  	
  	
  		org.springframework
  		spring-aop
  		${spring.version}
  	
  	
  		org.springframework
  		spring-tx
  		${spring.version}
  	
  	
  		org.springframework
  		spring-orm
  		${spring.version}
  	
  	
  		org.springframework
  		spring-web
  		${spring.version}
  	
  	
  		org.aspectj
  		aspectjweaver
  		1.8.7
  	
  	
  		org.slf4j
  		slf4j-api
  		1.7.12
  	
  	
  		org.slf4j
  		slf4j-log4j12
  		1.7.12
  	
  	
  		c3p0
  		c3p0
  		0.9.1.2
  	
  	
  		jstl
  		jstl
  		1.2
  	
  	
  		javax.servlet
  		servlet-api
  		2.5
  		provided
  	
  	
  		com.oracle
  		ojdbc6
  		11.2.0.1.0
  	
  	
  		com.alibaba
  		fastjson
  		1.2.8
  	
  
  	
    
		
			
		  		junit
		  		junit
		  		4.9
		  		test
	  		
		
    
    
    	
    		
    			org.apache.tomcat.maven
    			tomcat7-maven-plugin
    			2.2
    			
    				8080
    				/erp
    			
    		
    	
    

7.2、创建 Maven 子模块

 选择菜单 file -- new -- other

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第41张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第42张图片

 一共需要建立 4 个子模块
erp_entity 存放实体包
erp_dao 存放数据访问接口及实现类
erp_biz 存放业务逻辑层接口及实现类
erp_web 存放 action 类代码和前端代码 (注意:此模块的 packaging 选择 war)

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第43张图片

在 erp_web 工程中展开 src \main \webapp 目录 建立 WEB-INF 文件夹,并将
web.xml 拷贝到文件夹中。



	
	
		org.springframework.web.context.ContextLoaderListener
	
	
		contextConfigLocation
		classpath*:applicationContext*.xml
	
		
	
   		openSessionInView
   		org.springframework.orm.hibernate5.support.OpenSessionInViewFilter
	
	
	
		openSessionInView
		/*
	
	
	
		struts2
		org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
	

	
		struts2
		/*
	
	
	

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第44张图片

将 spring 配 置 文 件 中 的 applicationContext_datasource.xml 和applicationContext_dao.xml 拷贝到 erp_dao 工程的 src/main/resources 下。

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第45张图片

 applicationContext_dao.xml


  
	

	

	

 applicationContext_datasource.xml


  
	
	
	
	
		
		
		
		
	
	
	
	
		
		
			
				org.hibernate.dialect.Oracle10gDialect
				true
				false
			
		
		
			classpath:实体类所在的包/*.hbm.xml
		
	
	

	

 将spring配置文件中的applicationContext_tx.xml和applicationContext_biz.xml 拷贝到 erp_biz 工程的 src/main/resources 下。

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第46张图片


  
	
	
	
		
	
	
	
	    	     
	      
	      
	      
	      
	      
	      
	    
	
	
	
		
		
	
	

	

  
	

	

	

将 struts.xml 和spring配置文件中的applicationContext_action.xml 拷贝到erp_web工程的 src/main/resources 下。

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第47张图片


  
	

	

	

 




        	   	
    

7.3、建立 Maven 子模块之间的依赖

各模块的依赖关系如下:
erp_dao 依赖 erp_entity
erp_biz 依赖 erp_dao
erp_web 依赖 erp_biz

7.4、在各模块中创建包

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第48张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第49张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第50张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第51张图片

7.5、修改 Spring 配置文件 

修改 erp_dao 工程的 applicationContext_datasource.xml

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第52张图片蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第53张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第54张图片

7.6、添加 easyUI 到 erp_web 工程

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第55张图片

将项目必备文件夹中的 ui 文件夹拷贝到 erp_web 工程的 src/main/webapp 下 

8、【部门管理】实现列表查询

8.1、需求

实现部门列表的查询,最终效果如下:

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第56张图片

8.2、后端代码编写

后端代码的目标是完成 action ,地址栏输入 action 地址可以看到列表的 json

(1)编写实体类
在 erp_entity 工程中的 cn.itcast.erp.entity 包下建立 Dep 类

package cn.itcast.erp.entity;
/**
* 部门实体类
* @author Administrator
*
*/
public class Dep {
private Long uuid;//部门编号
private String name;//部门名称
private String tele;//部门电话
public Long getUuid() {
return uuid;
}
public void setUuid(Long uuid) {
this.uuid = uuid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTele() {
return tele;
}
public void setTele(String tele) {
this.tele = tele;
}
}

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第57张图片

(2)编写映射文件
在 erp_entity 工程的 resources 中创建包 cn.itcast.erp.entity ,并在此目录下创建
映射文件 dep.hbm.xml :










(3)编写数据访问层接口

在 erp_dao 工程中的 cn.itcast.erp.dao 包下创建 IDepDao 接口

package cn.itcast.erp.dao;
import java.util.List;
import cn.itcast.erp.entity.Dep;
/**
* 部门数据访问接口
* @author Administrator
*
*/
public interface IDepDao {
/**
* 查询全部列表
* @return
*/
public List getList();
}

(4)编写数据访问层实现类
在 erp_dao 工程中的 cn.itcast.erp.dao.impl 包下创建 DepDao 类

package cn.itcast.erp.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
import cn.itcast.erp.dao.IDepDao;
import cn.itcast.erp.entity.Dep;
/**
* 部门数据访问类
* @author Administrator
*
*/
public class DepDao extends HibernateDaoSupport implements IDepDao {
/**
* 查询全部列表
*/
public List getList() {
// TODO Auto-generated method stub
return (List) getHibernateTemplate().find("from Dep");
}
}

(5) 编写业务逻辑接口
在 erp_biz 的 cn.itcast.erp.biz 包下创建 IDepBiz 接口

package cn.itcast.erp.biz;
import java.util.List;
import cn.itcast.erp.entity.Dep;
public interface IDepBiz {
/**
* 查询全部列表
* @return
*/
public List getList();
}

(6) 编写业务逻辑实现类
在 erp_biz 的 cn.itcast.erp.biz.impl 包下创建 DepBiz 类

package cn.itcast.erp.biz.impl;
import java.util.List;
import cn.itcast.erp.biz.IDepBiz;
import cn.itcast.erp.dao.IDepDao;
import cn.itcast.erp.entity.Dep;
/**
* 业务逻辑类
* @authorAdministrator
**/
public class DepBiz implements IDepBiz {
private IDepDao depDao;
public void setDepDao(IDepDao depDao) {
this.depDao = depDao;
}
/**
* 查询全部列表
*/
public List getList() {
return depDao.getList();
}
}

(7)编写 action
在 erp_web 工程下的 cn.itcast.erp.action 包下创建 DepAction 类

package cn.itcast.erp.action;
import java.io.IOException;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.alibaba.fastjson.JSON;
import cn.itcast.erp.biz.IDepBiz;
import cn.itcast.erp.entity.Dep;
/**
* 部门 Action
* @author Administrator
*
*/
public class DepAction {
private IDepBiz depBiz;
public void setDepBiz(IDepBiz depBiz) {
this.depBiz = depBiz;
}
public void list(){
List list = depBiz.getList();
String jsonString = JSON.toJSONString(list);
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("UTF-8");
try {
response.getWriter().print(jsonString);
} catch (IOException e) {
e.printStackTrace();
}
}
}

我们在 action 中,调用业务逻辑返回列表,转换为 json 格式数据,这里我们
采用的是目前最为流行的 fastJSON, 它可是由阿里巴巴开发的呦。

(8)配置文件 注入,测试运行
applicationContext.xml

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第58张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第59张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第60张图片

8.3、前端页面编写

(1)创建页面 dep.html,引入样式表和 js 文件





(2)数据表格(dataGrid)的简单用法

在 body 中添加以下内容:

注意:我们的表格构建方法要放入匿名函数内

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第61张图片

我们这里主要学习 datagrid 最常用的属性
url :远程 action 的地址
columns :列定义
singleSelect:为 true 表示单行选中
列属性:

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第62张图片

蓝云ERP系统项目笔记———软件设计与环境搭建(1)_第63张图片

主要任务:
1. 数据库建立表空间、创建用户、执行建表 SQL (客户端安装配置可选)
2. 约束配置
3. 搭建框架
4. 部门列表实现
5. 类图、活动图绘制(可选) 

你可能感兴趣的:(蓝云ERP系统项目笔记———软件设计与环境搭建(1))