admin管理员组

文章数量:1663669

OA办公系统(一)

  • 一、项目介绍
    • 项目功能:
    • 数据表:
  • 二、 环境搭建
    • 第一步:创建项目添加依赖
    • 第二步 :添加相关配置
      • 1. MyBatis
      • 2. Spring
      • 3. SpringMVC
      • 4. 其他资源
    • 第三步: 添加页面
    • 第四步:划分项目模块
    • 第五步:测试运行
  • 三、 功能开发
    • 第一步:DAO开发
    • 第二步:Service层代码
    • 第三步:Controller层代码
      • 1. 注销登录
      • 2. 客户信息管理(单表的增删改查)
        • 1)添加客户信息
        • 2)首页显示全部客户信息(分页)
        • 3)Ajax请求详解
        • 4)查看详情功能
        • 5)编辑功能实现 编辑功能的实现
        • 6)搜索功能实现 Dao层
        • 7)批量删除

一、项目介绍

OA,全称Office Automation,指的是办公自动化
企业:泛微、金蝶软件、浪潮…
ERP,Enterprise Resource Planning,企业资源计划
MIS:企业的信息管理系统
浪潮云ERP

项目功能:

数据表:


Analysis:需求表,项目管理----需求管理
Archives:档案表,档案信息
Attachment:附件表,项目管理----附件管理----需求文档、开发文档…
Baoxiao:报销表
Baoxiaoreply:报销审批
Customer:客户信息表
Datacollect:对标
Dept:部门
Email:邮件
emp_role:中间表
employee:员工表
evaluate:评论
expendituretype:报销支出类型
forumpost:帖子
function:项目功能表
indexvalue:对标信息
level:员工等级
module:项目模块
msg:消息表
notice:通知
position:职级
project:项目表
role:角色表
role_sources:角色资源
sources:资源表
task:任务

二、 环境搭建

第一步:创建项目添加依赖

<dependencies>
        <!--引入pageHelper分页插件  PageInfo -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.0.0</version>
        </dependency>

        <!-- springwebmvc  -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>

        <!-- 返回json字符串的支持  -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.8</version>
        </dependency>

        <!-- Spring 整合Jdbc -->

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>

        <!--Spring-test spring测试包 -->

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>

        <!-- Spring面向切面编程 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>

        <!--MyBatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.2</version>
        </dependency>


        <!-- MyBatis整合Spring的适配包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.1</version>
        </dependency>

        <!-- 阿里巴巴 数据源 druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>

        <!-- mysql驱动包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>

        <!-- jstl jsp标签库包 -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!-- servlet api包 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>

        <!-- junit 测试包 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <!-- 日志包 -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>

        <!-- excel 批量的导入导出  -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.9</version>
        </dependency>

        <!--  处理文件上传 -->
        <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/javax.mail/mail -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.6</version>
        </dependency>

        <!-- 定时任务 -->
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.1</version>
        </dependency>

        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz-jobs</artifactId>
            <version>2.2.1</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>

        <!-- redis 的工具包 -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>

        <!-- 阿里巴巴的fastjson json和java 快速转换工具包-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
</dependencies>

第二步 :添加相关配置

1. MyBatis

核心配置文件
映射文件:位置在resources目录下,编译时可以直接加载

2. Spring

Spring核心容器拆分:
beans_core.xml:整合Mybaitis等基础配置
beans_redis.xml:整合Redis配置
beans_transaction.xml:事务管理配置

3. SpringMVC

springmvc.xml:核心配置文件
web.xml:项目的启动配置

4. 其他资源

第三步: 添加页面

注意:使用Idea添加大量资源时,不建议直接在工具窗口下添加,避免界面卡顿的情况发生,建议在工作空间添加

第四步:划分项目模块

第五步:测试运行

错误:类型没有找到

错误原因:
web模块手动添加的,打包过程中,只打包了web模块下的资源,并没有添加依赖,
项目运行时,web.xml在读取当前类型时找不到相关jar包,需要手动添加相关Jar包

解决方案:添加项目jar包

三、 功能开发

第一步:DAO开发

接口:定义数据库操作方法

注意:多参数处理问题

映射文件:数据操作方法的具体实现

第二步:Service层代码

接口:定义service层方法

实现类:方法的具体实现

注意:实现类上需要添加注解,涉及到的Mpper接口对象也需要使用注解初始化

第三步:Controller层代码

定义Controller类,类中添加登陆方法

注意: @Controller注解不要忘记添加
类上使用@RequestMapping注解,目的是过滤请求
方法上不要忘记使用@RequestMapping指定处理请求的名称

请求处理的请求名称需要参考前端页面

接收参数时接收的是表单中name属性值

1. 注销登录

Controller添加退出主页面方法:

注意: 退出登录页面,主页面中
主页面分成了三部分:top.jsp、menu.jsp、main.jsp 退出请求top.jsp中产生的

2. 客户信息管理(单表的增删改查)

1)添加客户信息

涉及到的表

准备实体类

DAO层代码
接口:

映射文件:

Service层代码
接口:

实现类:

注意:注解不要忘记

Controller层代码

请求地址确定: 、
确定请求产生的页面

在…add.jsp页面中点击保存,调用了js方法

查看saveinfo方法,在此方法中,将addcus表单提交

表单提交产生请求

注意:表单中的name属性值要与Controller接收对象属性名称保持一致

2)首页显示全部客户信息(分页)

DAO层代码
接口:

映射文件:

Service层代码
接口:

实现类:

Controller层代码(分页功能开启)

3)Ajax请求详解

ajax

Type:请求类型
url:请求地址(请求名称)
data:请求参数
dataType:返回数据类型
success:请求成功后的回调(执行的方法)
rs:请求成功后返回的结果(PageInfo)

4)查看详情功能

Controller层:

Service层: 接口:

实现类:

Dao层: 接口:

映射文件:

5)编辑功能实现 编辑功能的实现

,首先要实现查看详情的功能,编辑功能需要预览数据
Controller层代码:

Service层代码:
接口:

实现类:

Dao层代码:
\接口:

映射文件:

6)搜索功能实现 Dao层

接口:

Vo对象携带了额外传入的查询条件 映射文件:

Service层 接口:

实现类:

Controller层代码:
注意:分页+排序需要单独在Java代码中处理,处理的方式为开启分页时单独指定排序 的字段,导入Jar包也有自己的规范

分页插件的版本要求5.1以上

7)批量删除

Controller层(直接与前端页面交互) 交互逻辑: 前端页面产生请求过程,请求名称
Controller处理请求时,需不需要前端传递参数 前端页面出递过来的参数如何接收,需不需要处理
请求处理后的结果是什么,需不需要返回数据,需不需要跳转页面 处理请求的过程中调用业务层的方法是什么

Service层代码(复杂业务逻辑建议放在Service中处理) 接口

实现类

Dao层代码(纯数据操作,接口代理模式开发) 接口

映射文件:foreach标签的使用,回顾动态SQL

本文标签: 办公系统oa