Java Web 开发从入门到实践课件 第15章 - 项目案例:员工管理系统_第1页
Java Web 开发从入门到实践课件 第15章 - 项目案例:员工管理系统_第2页
Java Web 开发从入门到实践课件 第15章 - 项目案例:员工管理系统_第3页
Java Web 开发从入门到实践课件 第15章 - 项目案例:员工管理系统_第4页
Java Web 开发从入门到实践课件 第15章 - 项目案例:员工管理系统_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论