版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2.1“逻辑”的多种含义 课件-2025-2026学年高中政治统编版选择性必修三逻辑与思维
- 员工餐厅提升方案
- 2026年南方科技大学公共卫生及应急管理学院刘小敏课题组诚聘博士后、科研助理和访问学生备考题库带答案详解
- 2026年备考题库化建设与管理办公室专业技术人员招聘备考题库及参考答案详解一套
- 2026年中航油新疆航空油料有限公司招聘备考题库及参考答案详解一套
- 2026年南宁市武鸣区太平镇卫生院编外工作人员招聘备考题库附答案详解
- 2026年六盘水市中医医院面向社会公开招聘编制外12名专业技术人员备考题库及参考答案详解
- 2026年成都市双流区实验第四幼儿园招聘备考题库及1套完整答案详解
- 江苏省淮安、宿迁等2026届生物高一上期末学业质量监测模拟试题含解析
- 2026届吉林省高中学校高三生物第一学期期末联考模拟试题含解析
- 化纤面料特性说明手册
- 高校文化育人课题申报书
- 小儿脑瘫作业疗法家庭指导
- 汉字鱼的讲解课件
- 内蒙古电力招聘考试真题2024
- 知道智慧树知识产权信息检索与利用满分测试答案
- 医院三合理一规范培训
- 解读《重症监护病房临终关怀与姑息治疗指南》
- 关键物料管理办法
- 禁毒讲师团管理办法
- 《室内空气 第9部分:建材产品和装饰材料中挥发性有机化合物释放量的测试 环境测试舱法》标准化发展报告
评论
0/150
提交评论