Java Web 開(kāi)發(fā)從入門(mén)到實(shí)踐課件 第15章 - 項(xiàng)目案例:?jiǎn)T工管理系統(tǒng)_第1頁(yè)
Java Web 開(kāi)發(fā)從入門(mén)到實(shí)踐課件 第15章 - 項(xiàng)目案例:?jiǎn)T工管理系統(tǒng)_第2頁(yè)
Java Web 開(kāi)發(fā)從入門(mén)到實(shí)踐課件 第15章 - 項(xiàng)目案例:?jiǎn)T工管理系統(tǒng)_第3頁(yè)
Java Web 開(kāi)發(fā)從入門(mén)到實(shí)踐課件 第15章 - 項(xiàng)目案例:?jiǎn)T工管理系統(tǒng)_第4頁(yè)
Java Web 開(kāi)發(fā)從入門(mén)到實(shí)踐課件 第15章 - 項(xiàng)目案例:?jiǎn)T工管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JavaWeb開(kāi)發(fā)從入門(mén)到實(shí)踐JavaWebDevelopmentFromIntroductiontoPractice項(xiàng)目案例Chap15員工管理系統(tǒng):提綱項(xiàng)目案例:?jiǎn)T工管理系統(tǒng)本項(xiàng)目案例旨在通過(guò)詳細(xì)的項(xiàng)目設(shè)計(jì)與系統(tǒng)實(shí)現(xiàn),構(gòu)建一個(gè)高效的員工管理系統(tǒng),以?xún)?yōu)化企業(yè)人力資源的管理與運(yùn)營(yíng)。15.1項(xiàng)目設(shè)計(jì)15.2系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)15.3本章小結(jié)15.1項(xiàng)目設(shè)計(jì)15.1.1項(xiàng)目概述15.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)15.1.1項(xiàng)目概述需求分析功能結(jié)構(gòu)本系統(tǒng)前臺(tái)使用當(dāng)前主流框架Vue,后端使用SpringBoot+MyBatis框架。本系統(tǒng)用戶(hù)登錄成功后,對(duì)用戶(hù)信息進(jìn)行管理,包括增加用戶(hù)、查詢(xún)用戶(hù)、修改用戶(hù)和刪除用戶(hù)。也可以對(duì)部門(mén)管理模塊、員工管理模塊、員工培訓(xùn)模塊和獎(jiǎng)懲管理模塊進(jìn)行增加、查詢(xún)、修改和刪除操作。圖

14-1

系統(tǒng)功能結(jié)構(gòu)圖15.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)(1)用戶(hù)信息表(user)表

15-1用戶(hù)信息表字段名類(lèi)型是否為空是否為主鍵描述idint否是用戶(hù)編號(hào)namevarchar(50)否否姓名usernamevarchar(50)否否用戶(hù)名passwordvarchar(50)否否密碼agetinyint是否年齡gendertinyint是否性別(1男0女)phonevarchar(11)是否手機(jī)號(hào)roletinyint是否角色(1管理員2普通用戶(hù))15.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)(2)部門(mén)表(dept)表

15-2部門(mén)表字段名類(lèi)型是否為空是否為主鍵描述idint否是部門(mén)編號(hào)namevarchar(50)否否部門(mén)名稱(chēng)create_timedatetime否否創(chuàng)建時(shí)間update_timedatetime否否修改時(shí)間15.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)(3)員工信息表(emp)表

15-3員工信息表字段名類(lèi)型是否為空是否為主鍵描述idint否是員工編號(hào)namevarchar(50)否否姓名gendertinyint是否性別(1男0女)imagevarchar(50)是否頭像jobtinyint是否職位(1專(zhuān)任教師2輔導(dǎo)員3其它)entrydatedate是否入職時(shí)間dept_idint是否部門(mén)IDcreate_timedatetime是否創(chuàng)建時(shí)間update_timedatetime是否修改時(shí)間15.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)(4)員工培訓(xùn)表(train)表

15-4員工培訓(xùn)表字段名類(lèi)型是否為空是否為主鍵描述idint否是編號(hào)emp_idint否否員工編號(hào)themevarchar(50)否否培訓(xùn)主題organizervarchar(50)否否主辦方start_datedate是否培訓(xùn)開(kāi)始時(shí)間end_datedate是否培訓(xùn)結(jié)束時(shí)間contentvarchar(300)是否培訓(xùn)主要內(nèi)容15.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)(5)獎(jiǎng)懲信息表(prizeFine)表

15-5獎(jiǎng)懲表字段名類(lèi)型是否為空是否為主鍵描述idint否是編號(hào)emp_idint否否員工編號(hào)typeint否否類(lèi)型(1警告2記過(guò)3大過(guò)4嘉獎(jiǎng)5記功6大功)contentvarchar(300)是否獎(jiǎng)懲事項(xiàng)及文號(hào)15.2系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)15.2.1項(xiàng)目環(huán)境搭建15.2.2登錄模塊15.2.3員工管理模塊15.2.1項(xiàng)目環(huán)境搭建系統(tǒng)開(kāi)發(fā)環(huán)境本系統(tǒng)的軟件開(kāi)發(fā)及運(yùn)行環(huán)境如下。(1)操作系統(tǒng):Windows10或更高的Windows版本(2)JDK環(huán)境:corretto-17javaversion"17.0.9"(3)開(kāi)發(fā)工具:IntelliJIDEA2023(4)Web服務(wù)器:SpringBoot框架的web依賴(lài)包中內(nèi)嵌Tomcat組件(5)數(shù)據(jù)庫(kù):MySQL8.0.32(6)框架:SpringBoot3.1.7、mybatis2.3.1、Vue2.0(7)瀏覽器:推薦谷歌或火狐瀏覽器15.2.1項(xiàng)目環(huán)境搭建工程目錄結(jié)構(gòu)圖

14-3

工程的目錄結(jié)構(gòu)圖(后端)圖

14-4

工程的目錄結(jié)構(gòu)(前端)15.2.2登錄模塊后端功能的實(shí)現(xiàn)(1)創(chuàng)建實(shí)體類(lèi)@Data@NoArgsConstructor@AllArgsConstructorpublicclassUser{ privateIntegerid; privateStringname;

privateStringusername;//省略

}(2)創(chuàng)建數(shù)據(jù)訪(fǎng)問(wèn)層@MapperpublicinterfaceUserMapper{

@Select("SELECTpasswordfromuserwhereusername=#{username}")

publicStringgetPwdByUserName(Stringusername);

}15.2.2登錄模塊(4)創(chuàng)建控制器類(lèi)@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"); }}}注意,操作數(shù)據(jù)庫(kù),需要在perties中配置數(shù)據(jù)源。15.2.2登錄模塊前端功能的實(shí)現(xiàn)手動(dòng)配置路由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所示,用戶(hù)登錄成功后,進(jìn)入員工管理列表頁(yè)面。15.2.2登錄模塊LoginView.vue代碼如下:<template><divstyle="width:300px;margin;0pxauto;"><el-formref="form":model="loginForm"label-width="80px"size="mini"><el-form-itemlabel="用戶(hù)"><el-inputv-model="loginForm.username"placeholder="請(qǐng)輸入用戶(hù)名"></el-input></el-form-item><el-form-itemlabel="密碼"><el-inputv-model="loginForm.password"show-passwordplaceholder="請(qǐng)輸入密碼"></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員工管理模塊后端主要功能的實(shí)現(xiàn)圖

14-5

員工管理模塊的列表頁(yè)面15.2.3員工管理模塊圖

14-6增加員工界面15.2.3員工管理模塊圖

14-7修改員工界面15.2.3員工管理模塊圖

14-8刪除提示框15.2.3員工管理模塊(1)創(chuàng)建實(shí)體類(lèi)@Data@AllArgsConstructor@NoArgsConstructorpublicclassEmp{

privateIntegerid;

privateStringname;

privateShortgender;//省略}員工實(shí)體類(lèi)分頁(yè)實(shí)體類(lèi)@Data@AllArgsConstructor@NoArgsConstructor

publicclassPageBean{

privateLongtotal;

privateListrows;

}15.2.3員工管理模塊(2)創(chuàng)建數(shù)據(jù)層@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插件分頁(yè) @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)創(chuàng)建業(yè)務(wù)層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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論