SSM实战项目,基于Spring+SpringMVC+mybatis实现的人事管理系统源码+数据库+使用说明

SSM实战项目:人事管理系统(蓝色版)

一、员工管理系统项目说明:

该项目主要是完成Spring+SpringMVC+mybatis的完整整合,功能实现比较单一,就是一个完成增删改查的小项目!

完整代码下载地址SSM实战项目,人事管理系统源码+数据库+使用说明

1、整个项目实现功能

1、管理员的登录,注册<br />2、员工的增删改查,批量删除<br />整个系统设计的目标人群是管理者,系统的主要功能是对员工进行各种信息的操作。<br />主要是完成对数据库的增删改查的功能。

2、开发环境

分类名称语种
操作系统windows10简体中文
数据库平台MySQL Server 8.0+
应用服务器apache-tomcat-8.5.71
java开发工具idea
框架mybatis+Spring+SpringMVC
项目名称《学生教务系统》
实现技术mybatis+Spring+SpringMVC+mysql+Servlet+jquery+bootStrap+js+Maven+tomcat等技术

3、数据库表设计

-- 创建员工表
create table t_emp(
id int primary key auto_increment,
name varchar(20) not null,
salary double not null,
age int not null
)-- 添加员工数据
insert into t_emp values(null,'王恒杰',20000,21);
insert into t_emp values(null,'杨福君',9000,19);
-- 查询员工数据
select * from t_emp;-- 创建管理员表
create table t_admin(id    int  primary key auto_increment,username varchar(20),password varchar(50)
)
-- 添加数据
insert into t_admin values(null,'王恒杰','123456');
-- 查询
select * from t_admin

4、Maven导入项目所依赖的jar包

  <!--junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.3.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>4.3.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.3.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>4.3.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.3.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>4.3.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>4.3.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>4.3.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.3.2.RELEASE</version></dependency><!--springmvc核心依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.2.RELEASE</version></dependency><!--servlet-api--><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><!--jsp--><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version></dependency><!--jstl标签库--><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!--mysql驱动jar--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency><!--mybatis相关依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version></dependency><!--mybatis和spring的整合jar--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.1</version></dependency>

5、Spring+mybatis整合工厂(applicationContext.xml)

    <!--1.开启注解扫描--><context:component-scan base-package="com.tjcu.whj"></context:component-scan><!--2.加载 jdbc.properties小配置文件--><context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder><!--3.加载数据源--><bean class="com.alibaba.druid.pool.DruidDataSource" name="dataSource"><property name="driverClassName" value="${jdbc.driver}"></property><property name="url" value="${jdbc.url}"></property><property name="username" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property></bean><!--4.SqlSessionFactory--><bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory"><!--1.依赖于数据源--><property name="dataSource" ref="dataSource"></property><!--2:mapper文件--><property name="mapperLocations" value="classpath:com/tjcu/mapper/*DaoMapper.xml"></property><!--3.别名--><property name="typeAliasesPackage" value="com.tjcu.whj.entity"></property></bean><!--5.dao--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!--sqlSessionFactory--><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property><!--依赖于DAO接口类型  --><property name="basePackage" value="com.tjcu.whj.dao"></property></bean><!--6.事务管理器--><bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager"><property name="dataSource" ref="dataSource"></property></bean><!--7.开启注解式事务控制--><tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>

6、Spring+SpringMVC整合工厂(Spring-mvc.xml)

  <!--1.开启注解式扫描--><context:component-scan base-package="com.tjcu.whj"></context:component-scan><!--2.注册处理器映射器(解析URL路径)handlerMapping,处理器适配器:参数处理handlerAdapter--><mvc:annotation-driven/><!--3.注册视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--前缀--><property name="prefix" value="/"></property><!--后缀--><property name="suffix" value=".jsp"></property></bean><!--4.处理静态资源拦截问题--><mvc:default-servlet-handler/>

二、管理员登录/注册模块功能开发

  • 功能模块:登录,注册,注销,密码加密

  • 注册示意图

  • 登录示意图

1、dao层(adminDao.java)

public interface AdminDao {/*** 登录* @param admin* @return*/public Admin login(Admin admin);/***  注册* @param admin*/public void register(Admin admin);
}

2、Service层

(1)adminService接口层
public interface AdminService {/*** 登录* @param admin* @return*/public Admin login(Admin admin);/***  注册* @param admin*/public void register(Admin admin);
}
(2)adminServiceImpl实现类
@Service("adminService")
@Transactional
public class AdminServiceImpl implements AdminService {@Autowiredprivate AdminDao adminDao;@Overridepublic Admin login(Admin admin) {return adminDao.login(admin);}@Overridepublic void register(Admin admin) {adminDao.register(admin);}
}

3、功能测试(adminTest)

public class AdminTest {@Testpublic void login(){ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");AdminService adminService = (AdminService) context.getBean("adminService");Admin admin = new Admin(null,null, "王恒杰", "123456",true);Admin login = adminService.login(admin);System.out.println(login);}@Testpublic void register(){ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");AdminService adminService = (AdminService) context.getBean("adminService");Admin admin = new Admin(null, "风犬少年","邓正武", "234567",true);adminService.register(admin);}
}

4、Controller层

@Controller("adminController")
@RequestMapping("admin")
public class AdminController {/*** 将adminService到AdminController中*/@Autowiredprivate AdminService adminService;/*** 登录* @param admin* @return*/@RequestMapping("login")public String login(Admin admin,HttpServletRequest request){String password = MD5Utils.md5(admin.getPassword());admin.setPassword(password);Admin admin1 = adminService.login(admin);System.out.println(admin1);if(admin1!=null){request.getSession().setAttribute("admin",admin1);return "redirect:/emp/show";}return "redirect:/login.jsp";}/***  注册* @param admin*/@RequestMapping("register")public String register(Admin admin){String password = MD5Utils.md5(admin.getPassword());admin.setPassword(password);adminService.register(admin);return "redirect:/login.jsp";}/*** 注销登录* @return*/@RequestMapping("destroy")public String destroy(HttpServletRequest request){request.getSession().invalidate();return "redirect:/login.jsp";}}

三、员工增删改查功能模块的开发

  • 员工的增删改查功能

  • 员工展示页面

  • 添加员工示意图

  • 修改员工示意图

1、dao层(empDao.java)

public interface EmpDao {/*** 添加员工** @param emp*/public void insert(Emp emp);/*** 删除员工* @param id*/public void deleteById(Integer id);/*** 展示员工* @return*/public List<Emp> showEmp();/*** 修改员工* @param emp*/public void updateEmp(Emp emp);/*** 数据回显* @param id* @return*/public Emp selectEmpById(Integer id);
}

2、Service层

(1)empService接口层
public interface EmpService {/*** 添加员工** @param emp*/public void insert(Emp emp);/*** 删除员工* @param id*/public void deleteById(Integer id);/*** 展示员工* @return*/public List<Emp> showEmp();/*** 修改员工* @param emp*/public void updateEmp(Emp emp);/*** 数据回显* @param id* @return*/public Emp selectEmpById(Integer id);
}
(2)empServiceImpl实现类
@Service("empService")
/*** 控制事务*/
@Transactional
public class EmpServiceImpl implements EmpService {/*** 将empDao注入进@Service组件中*/@Autowiredprivate EmpDao empDao;public void setEmpDao(EmpDao empDao) {this.empDao = empDao;}@Overridepublic void insert(Emp emp) {empDao.insert(emp);}@Overridepublic void deleteById(Integer id) {empDao.deleteById(id);}@Override@Transactional(propagation = Propagation.SUPPORTS)public List<Emp> showEmp() {return empDao.showEmp();}@Overridepublic void updateEmp(Emp emp) {empDao.updateEmp(emp);}@Override@Transactional(propagation = Propagation.SUPPORTS)public Emp selectEmpById(Integer id) {return empDao.selectEmpById(id);}
}

3、功能测试(EmpTest)

public class EmpTest {/*** 添加员工*/@Testpublic void insert(){ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");EmpService empService = (EmpService) context.getBean("empService");Emp emp = new Emp(null,"邓正武",2000d,22);empService.insert(emp);}/*** 删除员工*/@Testpublic void deleteById(){ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");EmpService empService = (EmpService) context.getBean("empService");empService.deleteById(4);}/*** 展示员工* @return*/@Testpublic void showEmp(){ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");EmpService empService = (EmpService) context.getBean("empService");List<Emp> emps = empService.showEmp();for (Emp emp : emps) {System.out.println(emp);}}/*** 修改员工*/@Testpublic void updateEmp(){ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");EmpService empService = (EmpService) context.getBean("empService");Emp emp = new Emp(3,"邓正武",38000d,23);empService.updateEmp(emp);}/*** 数据回显* @return*/@Testpublic void selectEmpById(){ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");EmpService empService = (EmpService) context.getBean("empService");Emp emp = empService.selectEmpById(1);System.out.println(emp);}
}

4、Controller层

@Controller("emoController")
@RequestMapping("emp")
public class EmpController {/*** 注入empService在EmpController中*/@Autowiredprivate EmpService empService;/*** 添加员工** @param emp*/@RequestMapping("insert")public String insert(Emp emp){empService.insert(emp);return "redirect:/emp/show";}/*** 删除员工* @param emp*/@RequestMapping("delete")public String  deleteById(Emp emp){empService.deleteById(emp.getId());return "redirect:/emp/show";}/*** 展示员工* @return*/@RequestMapping("show")public String showEmp(Model model){//调用业务方法List<Emp> emps = empService.showEmp();//作用域model.addAttribute("emps",emps);return "emplist";}/*** 修改员工* @param emp*/@RequestMapping("update")public String  updateEmp(Emp emp){empService.updateEmp(emp);return "redirect:/emp/show";}/*** 数据回显* @param id* @return*/@RequestMapping("select")public String selectEmpById(Integer id,Model model){Emp emp = empService.selectEmpById(id);model.addAttribute("emp",emp);return "updateEmp";}
}

完整代码下载地址SSM实战项目,人事管理系统源码+数据库+使用说明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/239528.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SickOs1.2

信息收集 # Nmap 7.94 scan initiated Wed Nov 22 22:16:22 2023 as: nmap -sn -oN live.nmap 192.168.182.0/24 Nmap scan report for 192.168.182.1 (192.168.182.1) Host is up (0.00028s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nmap scan report for 192.168…

springBoot3.2 + jdk21 + GraalVM上手体验

springBoot3.2 jdk21 GraalVM上手体验 SpringBoot2.x官方已经停止维护了&#xff0c;jdk8这次真的得换了&#x1f923; 可以参考官方文章进行体验&#xff1a;https://spring.io/blog/2023/09/09/all-together-now-spring-boot-3-2-graalvm-native-images-java-21-and-virt…

定时任务特辑 | Quartz、xxl-job、elastic-job、Cron四个定时任务框架对比,和Spring Boot集成实战

专栏集锦&#xff0c;大佬们可以收藏以备不时之需&#xff1a; Spring Cloud 专栏&#xff1a;http://t.csdnimg.cn/WDmJ9 Python 专栏&#xff1a;http://t.csdnimg.cn/hMwPR Redis 专栏&#xff1a;http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏&#xff1a;http://t.csdni…

全栈冲刺 之 一天速成MySQL

一、为什么使用数据库 数据储存在哪里&#xff1f; 硬盘、网盘、U盘、光盘、内存&#xff08;临时存储&#xff09; 数据持久化 使用文件来进行存储&#xff0c;数据库也是一种文件&#xff0c;像excel &#xff0c;xml 这些都可以进行数据的存储&#xff0c;但大量数据操作…

视频集中存储/磁盘阵列EasyCVR平台黑名单异常解决步骤是什么?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

UVA11729 Commando War

UVA11729 Commando War 题面翻译 突击战 你有n个部下&#xff0c;每个部下需要完成一项任务。第i个部下需要你花Bj分钟交代任务&#xff0c;然后他就会立刻独立地、无间断地执行Ji分钟后完成任务。你需要选择交代任务的顺序&#xff0c;使得所有任务尽早执行完毕&#xff08…

高压功率放大器的应用领域有哪些

高压功率放大器是一种特殊的电子设备&#xff0c;用于放大低电压信号到较高的功率水平。它在许多应用领域中发挥着重要作用。下面西安安泰将详细介绍高压功率放大器的几个常见应用领域。 声学领域&#xff1a;高压功率放大器在声学领域中广泛应用。例如&#xff0c;在音响系统和…

基于STM32 + TIM _定时器的基本机构和工作原理详解

前言 本篇博客主要学习了解定时器的基本结构和工作原理&#xff0c;掌握定时器的驱动程序和设计。本篇博客大部分是自己收集和整理&#xff0c;如有侵权请联系我删除。 本次博客板子使用的是正点原子精英版&#xff0c;芯片是STM32F103ZET6,需要资料可以我拿取。 本博客内容原…

短视频账号矩阵系统源码/saas独立源头技术开发

一、批量剪辑&#xff08;采用php语言&#xff0c;数学建模&#xff09; 短视频合成批量剪辑的算法主要有以下几种&#xff1a; 1. 帧间插值算法&#xff1a;通过对多个视频的帧进行插帧处理&#xff0c;从而合成一段平滑的短视频。 2. 特征提取算法&#xff1a;提取多个视频中…

FL Studio2024重磅更新 带你了解FL21.2最新版本功能

FL Studio2024是功能强大的音乐制作解决方案&#xff0c;使用旨在为用户提供一个友好完整的音乐创建环境&#xff0c;让您能够轻松创建、管理、编辑、混合具有专业品质的音乐&#xff0c;一切的一切都集中在一个软件中&#xff0c;只要您想&#xff0c;只要您需要&#xff0c;它…

2、RocketMQ源码分析(二)

RocketMQ的底层通信模块remoting remoting是RocketMQ的底层通信模块&#xff0c;RocketMQ底层通讯是使用Netty来实现的。本文通过对remoting源码进行分析&#xff0c;来说明remoting如何实现高性能通信的。 二、Remoting 通信模块结构 remoting 的网络通信是基于 Netty 实现&…

有两个篮子,分别为A 和 B,篮子A里装有鸡蛋,篮子B里装有苹 果,请用面向对象的思想实现两个篮子里的物品交换

问题&#xff1a; 有两个篮子&#xff0c;分别为A 和 B&#xff0c;篮子A里装有鸡蛋&#xff0c;篮子B里装有苹 果&#xff0c;请用面向对象的思想实现两个篮子里的物品交换 代码 package cn.ljh.algorithmic;/*** author JH*/ public class Demo07 {public static void main…