OA办公系统(一)

一、项目介绍

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
在这里插入图片描述

  • 28
    点赞
  • 269
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值