基于java Springboot實(shí)現(xiàn)教務(wù)管理系統(tǒng)詳解
視頻演示
研究背景
在當(dāng)今信息社會(huì)發(fā)展中中,計(jì)算機(jī)科學(xué)的飛速發(fā)展,大多數(shù)學(xué)校開(kāi)始注意辦公效率的發(fā)展是很關(guān)鍵,對(duì)學(xué)校的管理起到舉足輕重的作用?;?Internet 網(wǎng)絡(luò)的信息服務(wù),快速成長(zhǎng)為現(xiàn)代學(xué)校中一項(xiàng)不可或缺的內(nèi)容措施。很多校園都已經(jīng)不滿意商務(wù)辦公管理的緩慢成長(zhǎng)方式。學(xué)院的需求是一個(gè)功能強(qiáng)大的,能提供完善管理,管理信息系統(tǒng)的速度。社會(huì)持續(xù)向前發(fā)展,尤其是大多地方普及計(jì)算機(jī),計(jì)算機(jī)應(yīng)用已經(jīng)開(kāi)始向大容量的數(shù)據(jù)存儲(chǔ)與處理持續(xù)發(fā)展,產(chǎn)生了以計(jì)算機(jī)為核心,用數(shù)據(jù)庫(kù)作為環(huán)境的管理信息現(xiàn)代化系統(tǒng),事務(wù)管理方面用大容量和對(duì)各種信息動(dòng)態(tài)管理等方面的綜合應(yīng)用。建立學(xué)校教務(wù)管理系統(tǒng)能夠?qū)W(xué)校職員對(duì)學(xué)生信息的管理更為規(guī)范化和合理化。能有效快速記錄大量的學(xué)生得信息, 能對(duì)學(xué)生用戶能夠運(yùn)用簡(jiǎn)便的方法快速的查到他們所需要的課程信息,并且能夠發(fā)布通知等一系列功能,實(shí)現(xiàn)了由傳統(tǒng)人工轉(zhuǎn)向辦公向信息自動(dòng)化。因此用 Java相關(guān)開(kāi)發(fā)工具,精心構(gòu)建了一個(gè)教務(wù)信息管理平臺(tái),實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的管理系統(tǒng)。該系統(tǒng)能實(shí)現(xiàn)學(xué)生的管理、課程的管理、成績(jī)管理、課程選報(bào)情況管理、系統(tǒng)用戶的管理;能夠?qū)崿F(xiàn)學(xué)生報(bào)課程的查詢、已選報(bào)課程成績(jī)的查詢、個(gè)人信息查詢修改等功能、教務(wù)信息管理系統(tǒng)的完成給學(xué)校管理人員們和學(xué)生提供了很多的便利, 能夠更好的提高教學(xué)質(zhì)量,其科學(xué)性以及合理性對(duì)學(xué)校的發(fā)展有著舉足輕重的作用。
我國(guó)教務(wù)現(xiàn)狀與反思
就目前而言,我國(guó)絕大多數(shù)高校,和相當(dāng)一部分的中小學(xué)都已經(jīng)開(kāi)展了基本的信息化教育教學(xué)管理系統(tǒng)的建設(shè)工作,讓我國(guó)整體的教學(xué)效率與節(jié)奏得到了提升。但是根據(jù)我自己在使用學(xué)校的教務(wù)管理系統(tǒng),以及通過(guò)查閱文獻(xiàn)了解我國(guó)目前教務(wù)管理系統(tǒng)的一個(gè)發(fā)展現(xiàn)狀之后,我認(rèn)為其中仍然存在著兩個(gè)比較大的問(wèn)題。一方面,我認(rèn)為很多學(xué)校對(duì)于教育教學(xué)管理系統(tǒng)的開(kāi)發(fā),并沒(méi)有足夠的投入和付出。他們并沒(méi)有真正意識(shí)到教育教學(xué)管理系統(tǒng)能給學(xué)校帶來(lái)的東西。從前人的調(diào)查情況來(lái)看,很多學(xué)校為了方便,會(huì)直接將管理系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)外包給其他企業(yè),但他們并不是教育工作者,并不了解教育系統(tǒng)它究竟需要什么樣的功能[1]。這導(dǎo)致了部分教育教學(xué)管理系統(tǒng)的收效并不是很理想,是有待商榷的。另一方面,根據(jù)前人研究來(lái)看,大多數(shù)學(xué)校缺乏對(duì)自己系統(tǒng)的維護(hù),很多情況下在開(kāi)發(fā)完成之后,就不會(huì)再考慮對(duì)系統(tǒng)的維護(hù)升級(jí)了[2]。但教育是一個(gè)需要與時(shí)俱進(jìn)的事業(yè),無(wú)論是教材、教育方法,還是教育系統(tǒng),都需要跟上時(shí)代的腳步。很多學(xué)校目前采用的系統(tǒng)可能是五年,甚至十年前開(kāi)發(fā)的,沒(méi)有專門的人員對(duì)系統(tǒng)進(jìn)行維護(hù),也沒(méi)有根據(jù)師生的使用感受來(lái)對(duì)系統(tǒng)進(jìn)行修復(fù)、調(diào)整,這一點(diǎn)在我國(guó)目前其實(shí)是非常嚴(yán)重且普遍的。一個(gè)落伍的管理系統(tǒng),是無(wú)法為教育教學(xué)提供有效支持的。
主要技術(shù)和環(huán)境:
IDEA+Navicat+SpringBoot+Mysql+Springmvc+Jquery+thymeleaf模板+HTML等
功能截圖:
系統(tǒng)分為三個(gè)角色登錄《管理員、老師、學(xué)生》每個(gè)角色具有不同的功能、具體信息在上面演示視頻可以查看、我就不多做贅述了
登錄:
管理員首頁(yè):
教師首頁(yè):
學(xué)生首頁(yè):
部分代碼:
用戶登錄:
<div class="bg"></div> <div class="container"> <form class="form-signin text-center" action="" id="from" > <img class="mb-4" th:src="@{/asserts/img/abb.jpg}" alt="" width="72" height="72"/> <label class="sr-only" >Username</label> <input type="text" class="form-control" placeholder="用戶名" id="username" name="name"/> <label class="sr-only">Password</label> <input type="password" class="form-control" placeholder="密碼" id="password" name="pwd" style="margin-top: 20px"/> <div class="btn-group" role="group" aria-label="..."> <!-- <button type="button" class="but btn btn-default" value="sadmin">超級(jí)管理</button>--> <button type="button" class="but btn btn-default" value="admin">管理員</button> <button type="button" class="but btn btn-default" value="teacher">教師</button> </div> <div class="checkbox mb-3"> <label> <!--<input type="checkbox" value="remember-me" name="remember-me" /><span></span>--> </label> </div> <button class="btn btn-lg btn-primary btn-block" type="button"id="sub" @click="login">登錄</button> <span class="help-block"></span> <p class="mt-5 mb-3 text-muted">© 2018-2020</p> </form> </div> </body> <script type="text/javascript" th:src="@{/webjars/jquery/1.9.1/jquery.js}"></script> <script type="text/javascript" th:src="@{/webjars/bootstrap/3.3.7/js/bootstrap.min.js}"></script> <script type="text/javascript" th:src="@{/js/Vue.js}"></script> <script type="text/javascript" th:src="@{/js/element-ui.js}"></script> <script th:inline="javascript" type="text/javascript"> var basePath= /*[[${#httpServletRequest.getContextPath()}]]*/'ContextPath' ; var a = new Vue({ el:"#from", data:{ usertype:0, url:basePath+"/login" }, methods:{ login:function () { if(a.usertype==0) { a.point1() return; } if(a.usertype=="sadmin"){ // superadmni console.log("superadmin"); } if(a.usertype=="admin"){ // admin console.log("admin"); $.ajax({ url: this.url, type: "post", async: false, data: $("#from").serializeArray(), contentType: 'application/x-www-form-urlencoded', dataType:"json", success:function (result) { console.log("result:",result); if(result.code == 300){ alert(result.msg) }else if(result.code == 100){ window.location.href = basePath+"/admin/index"; } },error:function (data) { console.log("error:",data); } }); } if(a.usertype=="teacher"){ console.log("teacher"); $.ajax({ url: basePath+"/teacher/login", type: "get", async: false, data: $("#from").serializeArray(), contentType: 'application/x-www-form-urlencoded', dataType:"json", success:function (result) { if(result.extend.info == 300){ a.point2() }else if(result.extend.info == 200){ window.location.href = basePath+"/teacher/index"; }else a.point3() } point1(){ this.$notify.info({ title: '提示', message: '請(qǐng)選擇用戶類型' }); }, point2(){ this.$notify.info({ title: '提示', message: '賬號(hào)不存在' }); }, point3(){ this.$notify.error({ title: '提示', message: '密碼錯(cuò)誤' }); } }); $(".but").click(function(){ $(".but").removeClass("active"); $(this).addClass("active"); a.usertype = $(this).val(); }); </script> </html>
yml配置:
spring: # 環(huán)境 dev|test|prod | ctp profiles: active: pro datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/edumanagement?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false type: com.alibaba.druid.pool.DruidDataSource initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true # 配置監(jiān)控統(tǒng)計(jì)攔截的filters,去掉后監(jiān)控界面sql無(wú)法統(tǒng)計(jì),'wall'用于防火墻 filters: stat,wall,log4j maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5 thymeleaf: cache: false mode: HTML servlet: content-type: text/html prefix: classpath:/templates/ servlet: multipart: max-file-size: 100MB max-request-size: 500MB jackson: default-property-inclusion: non_null mybatis: mapper-locations: classpath:mybatis/mapper/*.xml configuration: map-underscore-to-camel-case: true # MybatisPlus 配置 mybatis-plus: mapper-locations: classpath:mapper/*/*Mapper.xml type-aliases-package: com.hngy.educationaladministration.plus.entity logging: level: com.hngy.educationaladministration.mapper: debug server: port: 8088 servlet: context-path: /edumanagement
視圖跳轉(zhuǎn):
/** * 添加視圖跳轉(zhuǎn) */ @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("login"); registry.addViewController("/teacher/businessView").setViewName("teacher/showtable/businessView"); registry.addViewController("/teacher/workloadView").setViewName("teacher/showtable/workloadView"); registry.addViewController("/teacher/workloadEdit").setViewName("teacher/fillouttable/workloadEdit"); registry.addViewController("/teacher/businessEdit").setViewName("teacher/fillouttable/businessEdit"); registry.addViewController("/teacher/businessPrint").setViewName("teacher/table/business"); registry.addViewController("/teacher/workloadPrint").setViewName("teacher/table/workload"); }
攔截放行:
/** * 放行路徑,不經(jīng)過(guò)攔截器 */ @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginInterceptor()).excludePathPatterns( "/", "/login", "/admin/login", "/admin/exit", "/teacher/login", "/teacher/exit", "/student/login", "/student/exit", "/js/**", "/asserts/**", "/webjars/**", "/css/**", "/error/**", "/cs" ); }
總結(jié):
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
idea啟動(dòng)多個(gè)服務(wù)不顯示Services或者RunDashboard窗口的處理方法
這篇文章主要介紹了idea啟動(dòng)多個(gè)服務(wù)不顯示Services或者RunDashboard窗口,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03詳解SpringBoot中5種類型參數(shù)傳遞和json數(shù)據(jù)傳參的操作
當(dāng)涉及到參數(shù)傳遞時(shí),Spring?Boot遵循HTTP協(xié)議,并支持多種參數(shù)傳遞方式,這些參數(shù)傳遞方式可以根據(jù)請(qǐng)求的不同部分進(jìn)行分類,2023-12-12詳解Spring Batch 輕量級(jí)批處理框架實(shí)踐
這篇文章主要介紹了詳解Spring Batch 輕量級(jí)批處理框架實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06java遞歸實(shí)現(xiàn)復(fù)制一個(gè)文件夾下所有文件功能
這篇文章主要介紹了java遞歸實(shí)現(xiàn)復(fù)制一個(gè)文件夾下所有文件功能n次,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08關(guān)于Java中數(shù)組切片的幾種方法(獲取數(shù)組元素)
這篇文章主要介紹了關(guān)于Java中數(shù)組切片的幾種方法(獲取數(shù)組元素),切片是數(shù)組的一個(gè)引用,因此切片是引用類型,在進(jìn)行傳遞時(shí),遵守引用傳遞的機(jī)制,需要的朋友可以參考下2023-05-05