版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaWeb开发从入门到实践JavaWebDevelopmentFromIntroductiontoPractice项目案例Chap15员工管理系统:提纲项目案例:员工管理系统本项目案例旨在通过详细的项目设计与系统实现,构建一个高效的员工管理系统,以优化企业人力资源的管理与运营。15.1项目设计15.2系统设计与实现15.3本章小结15.1项目设计15.1.1项目概述15.1.2数据库设计15.1.1项目概述需求分析功能结构本系统前台使用当前主流框架Vue,后端使用SpringBoot+MyBatis框架。本系统用户登录成功后,对用户信息进行管理,包括增加用户、查询用户、修改用户和删除用户。也可以对部门管理模块、员工管理模块、员工培训模块和奖惩管理模块进行增加、查询、修改和删除操作。图
14-1
系统功能结构图15.1.2数据库设计(1)用户信息表(user)表
15-1用户信息表字段名类型是否为空是否为主键描述idint否是用户编号namevarchar(50)否否姓名usernamevarchar(50)否否用户名passwordvarchar(50)否否密码agetinyint是否年龄gendertinyint是否性别(1男0女)phonevarchar(11)是否手机号roletinyint是否角色(1管理员2普通用户)15.1.2数据库设计(2)部门表(dept)表
15-2部门表字段名类型是否为空是否为主键描述idint否是部门编号namevarchar(50)否否部门名称create_timedatetime否否创建时间update_timedatetime否否修改时间15.1.2数据库设计(3)员工信息表(emp)表
15-3员工信息表字段名类型是否为空是否为主键描述idint否是员工编号namevarchar(50)否否姓名gendertinyint是否性别(1男0女)imagevarchar(50)是否头像jobtinyint是否职位(1专任教师2辅导员3其它)entrydatedate是否入职时间dept_idint是否部门IDcreate_timedatetime是否创建时间update_timedatetime是否修改时间15.1.2数据库设计(4)员工培训表(train)表
15-4员工培训表字段名类型是否为空是否为主键描述idint否是编号emp_idint否否员工编号themevarchar(50)否否培训主题organizervarchar(50)否否主办方start_datedate是否培训开始时间end_datedate是否培训结束时间contentvarchar(300)是否培训主要内容15.1.2数据库设计(5)奖惩信息表(prizeFine)表
15-5奖惩表字段名类型是否为空是否为主键描述idint否是编号emp_idint否否员工编号typeint否否类型(1警告2记过3大过4嘉奖5记功6大功)contentvarchar(300)是否奖惩事项及文号15.2系统设计与实现15.2.1项目环境搭建15.2.2登录模块15.2.3员工管理模块15.2.1项目环境搭建系统开发环境本系统的软件开发及运行环境如下。(1)操作系统:Windows10或更高的Windows版本(2)JDK环境:corretto-17javaversion"17.0.9"(3)开发工具:IntelliJIDEA2023(4)Web服务器:SpringBoot框架的web依赖包中内嵌Tomcat组件(5)数据库:MySQL8.0.32(6)框架:SpringBoot3.1.7、mybatis2.3.1、Vue2.0(7)浏览器:推荐谷歌或火狐浏览器15.2.1项目环境搭建工程目录结构图
14-3
工程的目录结构图(后端)图
14-4
工程的目录结构(前端)15.2.2登录模块后端功能的实现(1)创建实体类@Data@NoArgsConstructor@AllArgsConstructorpublicclassUser{ privateIntegerid; privateStringname;
privateStringusername;//省略
}(2)创建数据访问层@MapperpublicinterfaceUserMapper{
@Select("SELECTpasswordfromuserwhereusername=#{username}")
publicStringgetPwdByUserName(Stringusername);
}15.2.2登录模块(4)创建控制器类@RestControllerpublicclassUserController{@AutowiredprivateUserServiceuserService;@PostMapping("/emps/login")publicResultlogin(@RequestBodyUseruser){ System.out.println(user); Stringpwd=userService.getPwdByUserName(user.getUsername()); if(user.getPassword().equals(pwd)){ returnResult.success("success"); }else{ returnResult.error("error"); }}}注意,操作数据库,需要在perties中配置数据源。15.2.2登录模块前端功能的实现手动配置路由index.js文件importVuefrom'vue'importVueRouterfrom'vue-router'Vue.use(VueRouter)constroutes=[{path:'/',name:'loginDefault',redirect:"/login"},{path:'/login',name:'login',component:()=>import('../views/user/LoginView.vue')},{path:'/emp',name:'emp',component:()=>import('../views/user/EmpView.vue')},15.2.2登录模块{path:'/dept',name:'dept',component:()=>import('../views/user/DeptView.vue')},{path:'/train',name:'train',component:()=>import('../views/user/TrainView.vue')},{path:'/prizeFine',name:'prizeFine',component:()=>import('../views/user/PrizeFineView.vue')}]constrouter=newVueRouter({routes})exportdefaultrouter15.2.2登录模块图
14-4
登录界面登录界面如图14-4所示,用户登录成功后,进入员工管理列表页面。15.2.2登录模块LoginView.vue代码如下:<template><divstyle="width:300px;margin;0pxauto;"><el-formref="form":model="loginForm"label-width="80px"size="mini"><el-form-itemlabel="用户"><el-inputv-model="loginForm.username"placeholder="请输入用户名"></el-input></el-form-item><el-form-itemlabel="密码"><el-inputv-model="loginForm.password"show-passwordplaceholder="请输入密码"></el-input></el-form-item><el-form-itemsize="large"><el-buttontype="primary"@click="onSubmit">登录</el-button></el-form-item></el-form></div></template>15.2.2登录模块<script>importaxiosfrom'axios';exportdefault{data(){return{loginForm:{username:'',password:''}}},
15.2.2登录模块methods:{onSubmit(){letthat=this;constdata={"username":this.loginForm.username,"password":this.loginForm.password};axios.post("/emps/login",data).then((result)=>{if(result.data.data=="success"){that.$router.push("/emp");}}).catch((err)=>{console.log(err);});}}}</script>15.2.3员工管理模块后端主要功能的实现图
14-5
员工管理模块的列表页面15.2.3员工管理模块图
14-6增加员工界面15.2.3员工管理模块图
14-7修改员工界面15.2.3员工管理模块图
14-8删除提示框15.2.3员工管理模块(1)创建实体类@Data@AllArgsConstructor@NoArgsConstructorpublicclassEmp{
privateIntegerid;
privateStringname;
privateShortgender;//省略}员工实体类分页实体类@Data@AllArgsConstructor@NoArgsConstructor
publicclassPageBean{
privateLongtotal;
privateListrows;
}15.2.3员工管理模块(2)创建数据层@MapperpublicinterfaceEmpMapper{ @Select("selectid,name,gender,image,job,\n"+"entrydate,dept_id,create_time,update_timefromempwhereid=#{id}") publicEmpselectById(Integerid); publicvoidinsertEmp(Empemp); @Delete("deletefromempwhereid=#{id}") publicvoiddelete(Integerid); publicvoidupdate(Empemp); publicList<Emp>listWhere(Stringname,Shortgender,LocalDatestart,LocalDateend);}EmpMapper.java接口15.2.3员工管理模块<mappernamespace="com.swxy.mapper.EmpMapper"> <selectid="listWhere"> selectid,name,gender,image,job,entrydate,dept_id,create_time,update_timefromemp <where> <iftest="name!=nullandname!=''"> namelikeconcat('%',#{name},'%') </if> <iftest="gender!=nullandgender!=-1"> andgender=#{gender} </if> <choose> <whentest="start!=nullandend!=null"> andentrydatebetween#{start}and#{end} </when> <whentest="start!=null"> andentrydate>#{start} </when>
EmpMapper.xml代码15.2.3员工管理模块 <whentest="end!=null"> andentrydate<#{end} </when> </choose> </where> </select> <updateid="update"> updateemp <set> <iftest="name!=nullandname!=''"> name=#{name}, </if> <iftest="gender!=null"> gender=#{gender} </if> </set> whereid=#{id} </update>
15.2.3员工管理模块 <insertid="insertEmp"> insertintoemp <trimprefix="("suffix=")"suffixOverrides=","> <iftest="name!=nullandname!=''"> name, </if> <iftest="gender!=null"> gender, </if> <iftest="createTime!=null"> create_time, </if> <iftest="updateTime!=null"> update_time </if> </trim>
15.2.3员工管理模块 <trimprefix="values("suffix=")"suffixOverrides=","> <iftest="name!=nullandname!=''"> #{name}, </if> <iftest="gender!=null"> #{gender}, </if> <iftest="createTime!=null"> #{createTime}, </if> <iftest="updateTime!=null"> #{updateTime} </if> </trim> </insert> </mapper>15.2.3员工管理模块@ServicepublicclassEmpServiceImplimplementsEmpService{ @Autowired privateEmpMapperempMapper; @Override publicEmpselectById(Integerid){ returnempMapper.selectById(id); } //使用PageHelper插件分页 @Override publicPageBeanpage(Integerpage,IntegerpageSize,Stringname,Shortgender,LocalDatestart,LocalDateend){ PageHelper.startPage(page,pageSize); List<Emp>list=empMapper.listWhere(name,gender,start,end); Page<Emp>p=(Page<Emp>)list; PageBeanpageBean=newPageBean(p.getTotal(),p.getResult()); returnpageBean; }(3)创建业务层EmpServiceImpl.java文件代码15.2.3员工管理模块 @Override publicvoiddelete(Integerid){ empMapper.delete(id); } @Override publicvoidupdate(Empemp){ empMapper.update(emp); } @Override publicvoidinsertEmp(Empemp){ empMapper.insertEmp(emp); }}15.2.3员工管理模块@RestControllerpublicclassEmpController{@AutowiredprivateEmpServiceempService;@GetMapping("/emps/{id}")publicResultselectById(@PathVariableIntegerid){ returnResult.success(empService.selectById(id));}@GetMapping("/emps")publicObjectpage(@RequestParam(defaultValue="1")Integerpage,@RequestParam(defaultValue="3")IntegerpageSize,Stringname,Shortgender,String[]entryDate)throwsParseException{ LocalDatestart=null,end=null; if(entryDate!=null&&entryDate.length>0){ DateTimeFormatterdtf=DateTimeFormatter.of
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (4篇)2024年幼儿园家访工作总结
- 2024年江苏信息职业技术学院高职单招语文历年参考题库含答案解析
- 二零二五年度股权激励方案股权信息保密与保密合同3篇
- 二零二五版人工智能研发合作协议书2篇
- 2024年山西青年职业学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 2024年山西信息职业技术学院高职单招语文历年参考题库含答案解析
- 福建省南平市星溪中学2021年高二数学文下学期期末试卷含解析
- 二零二五年度烧烤店员工劳动合同:含薪资福利与培训计划
- 二零二五年度:产业链变革先锋80问合约规则与全新格局合作协议2篇
- 学校聘用合同范本(2篇)
- 成都大熊猫基地英文导游词-四川大熊猫基地解说词
- 一年级语文上册《两件宝》教案1
- 咨询公司工作总结(共5篇)
- pcs-985ts-x说明书国内中文版
- GB/T 38836-2020农村三格式户厕建设技术规范
- 小品《天宫贺岁》台词剧本手稿
- 京东商业计划书课件
- 医院患者伤口换药操作课件
- 肥料采购验收单模板
- 部编版五年级下册语文根据课文内容填空(常用)
- 中铁集团会计核算手册
评论
0/150
提交评论