博主介紹:?全網(wǎng)粉絲3W+,全棧開發(fā)工程師,從事多年軟件開發(fā),在大廠呆過。持有軟件中級、六級等證書??商峁┪⒎?wù)項(xiàng)目搭建與畢業(yè)項(xiàng)目實(shí)戰(zhàn)、定制、遠(yuǎn)程,博主也曾寫過優(yōu)秀論文,查重率極低,在這方面有豐富的經(jīng)驗(yàn)?
博主作品:《Java項(xiàng)目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分離項(xiàng)目,可以在左邊的分類專欄找到更多項(xiàng)目?!禪niapp項(xiàng)目案例》有幾個(gè)有uniapp教程,企業(yè)實(shí)戰(zhàn)開發(fā)?!段⒎?wù)實(shí)戰(zhàn)》專欄是本人的實(shí)戰(zhàn)經(jīng)驗(yàn)總結(jié),《Spring家族及微服務(wù)系列》專注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源碼解讀、熱門面試題、架構(gòu)設(shè)計(jì)等。除此之外還有不少文章等你來細(xì)細(xì)品味,更多驚喜等著你哦
??開源項(xiàng)目免費(fèi)哦:點(diǎn)擊這里克隆或者下載 ? ??
??文末獲取聯(lián)系??精彩專欄推薦訂閱???????? 不然下次找不到喲
Java項(xiàng)目案例《100套》
https://blog.csdn.net/qq_57756904/category_12173599.html
uniapp小程序《100套》
https://blog.csdn.net/qq_57756904/category_12199600.html
?【微服務(wù)】Nacos為什么丟棄短連接(http)而選擇擁抱長連接(gRPC)
目錄
一、前言
二、系統(tǒng)設(shè)計(jì)
1、系統(tǒng)運(yùn)行環(huán)境
2、系統(tǒng)架構(gòu)設(shè)計(jì)
三、系統(tǒng)核心技術(shù)
5.3.1 SpringBoot的優(yōu)點(diǎn)
5.3.2 MyBatis-plus
5.3.4 Vue的優(yōu)點(diǎn)
四、功能截圖
1、系統(tǒng)管理員
1.1、登錄界面
1.2、首頁
1.3、教師管理
?
1.4、學(xué)生管理
1.5、課程管理
1.6、年級管理
1.7、成績管理
2、系統(tǒng)管理
2.1、用戶管理
2.2、角色管理
2.3、菜單管理
2.4、部門管理
2.5、崗位管理
2.6、字典管理
3、學(xué)生
3.1、個(gè)人中心
3.2、課程選課
3.3、我的課程
3.4、我的成績
4、教師
4.1、課程信息
4.2、課程成績管理
4.3、個(gè)人中心
五、實(shí)現(xiàn)代碼
1、用戶控制器
2、用戶服務(wù)接口
3、服務(wù)實(shí)現(xiàn)類
六、uniapp教程(需求分析、各模塊及其節(jié)點(diǎn)文檔、各模塊案例)另外一個(gè)項(xiàng)目
七、獲取源碼
一、前言
? ? 學(xué)生管理系統(tǒng)(Student Management System),以下簡稱SMS,是針對學(xué)校人事處的大量業(yè)務(wù)處理工作而開發(fā)的管理軟件,是典型的管理信息系統(tǒng)(Management Information System)。它是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要,它能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄巍D苡行У膸椭鷮W(xué)校和老師掌握學(xué)生的情況,為學(xué)生提供成績跟課程方面的查詢。在傳統(tǒng)模式下利用人工進(jìn)行學(xué)生信息管理,存在著較多的缺點(diǎn),如:效率底,保密性差,時(shí)間一長將產(chǎn)生大量的文件和數(shù)據(jù),更不便于查找,更新,維護(hù)等。諸如這些情況,令學(xué)校管理者對學(xué)生的信息管理帶來了很大困難,嚴(yán)重影響了教育工作者的工作效率。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟, 使用日趨成熟的計(jì)算機(jī)技術(shù)來代替?zhèn)鹘y(tǒng)的人工模式,來實(shí)現(xiàn)學(xué)生信息的現(xiàn)代化管理,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對學(xué)生信息進(jìn)行管理,具有著手工管理所無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、易修改、可靠性高、存儲量大、數(shù)據(jù)處理快捷、保密性好、壽命長、成本低、便于打印等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生管理的效率,也是學(xué)校的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。用計(jì)算機(jī)制作的學(xué)生信息管理系統(tǒng)還可以通過功能強(qiáng)大的Internet網(wǎng)及時(shí)的向?qū)W生的家長傳遞該生在校的最新成績,有助于學(xué)校與家長的信息互動,為更好地把握學(xué)校的教育方針起到了一定的促進(jìn)作用!因此,開發(fā)這樣一套管理軟件成為很有必要的事情。
?
二、系統(tǒng)設(shè)計(jì)
1、系統(tǒng)運(yùn)行環(huán)境
開發(fā)系統(tǒng):Windows10
架構(gòu)模式:MVC/前后端分離
JDK版本:Java JDK1.8
開發(fā)工具:IDEA
數(shù)據(jù)庫版本: mysql5.7
數(shù)據(jù)庫可視化工具: SQL yog或Navicat for MySQL
服務(wù)器:SpringBoot自帶 apache tomcat
主要技術(shù):Java、SpringBoot、MyBatis-plus、SpringSecurity、Redis、MySQL、Vue、Html等
2、系統(tǒng)架構(gòu)設(shè)計(jì)
三、系統(tǒng)核心技術(shù)
5.3.1 SpringBoot的優(yōu)點(diǎn)
??相比于SSM框架,SpringBoot為開發(fā)者減少了許多配置工作,基于javaConfig實(shí)現(xiàn)自動化配置。使用一個(gè)核心注解@SpringBootApplication裝配一個(gè)應(yīng)用,相當(dāng)于跑一個(gè)main方法一樣啟動主啟動類,整個(gè)項(xiàng)目就快速跑起來。目前業(yè)界主要都是用它進(jìn)行開發(fā),微服務(wù)SpringCloud都是建立在它的基礎(chǔ)之上,由此可見SpringBoot的歡迎程度。
5.3.2 MyBatis-plus
鑒于MyBatis需配置大量的文件而在維護(hù)問題和時(shí)間成本上都不劃算,故而采用了它,當(dāng)然也會考慮MyBatis的優(yōu)點(diǎn),兩者相輔相成。它提供了自動生成代碼的工具,可快速生成 Mapper 、Entity、 Service 、Impl、 Controller 層代碼,節(jié)約一部分開發(fā)時(shí)間,讓開發(fā)者把精力都放在業(yè)務(wù)的開發(fā)上面去。
它對于數(shù)據(jù)庫的基本操作都封裝成了類,使用到了設(shè)計(jì)模式。
5.3.4 Vue的優(yōu)點(diǎn)
??與傳統(tǒng)的HTML來做比較的話,它更加地符合當(dāng)下開發(fā)工程師的追求。它能夠跟不少前端組件進(jìn)行完美切合,如elementui、antd等等。不得不說之所以使用它,是因?yàn)樗阌跍y試,便于改動馬上就可以看到效果,這是每一個(gè)開發(fā)者都希望看到的。
四、功能截圖
視頻演示:
https://www.bilibili.com/video/BV1Uc411W7X5
1、系統(tǒng)管理員
1.1、登錄界面
1.2、首頁
可以統(tǒng)計(jì)學(xué)生、教師、課程/專業(yè)、班級總數(shù),餅狀圖可以統(tǒng)計(jì)學(xué)生中男生女生總數(shù)以及比例
1.3、教師管理
1.4、學(xué)生管理
1.5、課程管理
1.6、年級管理
1.7、成績管理
2、系統(tǒng)管理
2.1、用戶管理
2.2、角色管理
2.3、菜單管理
2.4、部門管理
2.5、崗位管理
2.6、字典管理
3、學(xué)生
3.1、個(gè)人中心
3.2、課程選課
3.3、我的課程
3.4、我的成績
4、教師
4.1、課程信息
4.2、課程成績管理
4.3、個(gè)人中心
五、實(shí)現(xiàn)代碼
1、用戶控制器
@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping("/api/users")
public class CeamSysUserController {
private final ICeamSysUserService ceamSysUserService;
@GetMapping
public ResponseEntity page(PageableDTO pageableDTO) {
IPage<CeaMSysUserVO> ceaMSysUserVOIPage = ceamSysUserService.pageCeaMSysUserVO(pageableDTO);
return ResponseEntity.ok(ceaMSysUserVOIPage);
}
@PostMapping
public ResponseEntity<Object> add(@RequestBody CeaMSysUserDTO data) {
ceamSysUserService.add(data);
return ResponseEntity.ok("成功");
}
@PutMapping
public ResponseEntity<Object> edit(@RequestBody CeaMSysUserDTO data) {
ceamSysUserService.edit(data);
return ResponseEntity.ok("成功");
}
@DeleteMapping
public ResponseEntity<Object> add(@RequestParam String id) {
ceamSysUserService.remove(Long.parseLong(id));
return ResponseEntity.ok("成功");
}
}
2、用戶服務(wù)接口
/**
* <p>
* 用戶表 服務(wù)類
* </p>
*
* @author CeaM
* @since 2023-01-28
*/
public interface ICeamSysUserService extends IService<CeamSysUser> {
/**
* 分頁查詢
*
* @param pageableDTO 分頁入?yún)? * @return 分頁數(shù)據(jù)
*/
IPage<CeaMSysUserVO> pageCeaMSysUserVO(PageableDTO pageableDTO);
/**
* 根據(jù)賬號加載用戶信息
*
* @param userName 用戶賬號
* @return CeaMSysUserDTO
*/
CeaMSysUserDTO loadUserInfo(String userName);
/**
* 添加用戶
*
* @param data 前端入?yún)? */
void add(CeaMSysUserDTO data);
/**
* 修改用戶
*
* @param data 前端入?yún)? */
void edit(CeaMSysUserDTO data);
/**
* 根據(jù)用戶ID刪除用戶
*
* @param id userId
*/
void remove(Long id);
}
3、服務(wù)實(shí)現(xiàn)類
@Service
public class CeamSysUserServiceImpl
extends ServiceImpl<CeamSysUserMapper, CeamSysUser> implements ICeamSysUserService {
@Override
public IPage<CeaMSysUserVO> pageCeaMSysUserVO(PageableDTO pageableDTO) {
LambdaQueryWrapper<CeamSysUser> queryWrapper = Wrappers.<CeamSysUser>lambdaQuery()
.eq(CeamSysUser::getDeleted, GlobalConstants.FALSE);
Page<CeamSysUser> page = new Page<>(pageableDTO.getPage(), pageableDTO.getSize());
page.setCurrent((long)pageableDTO.getPage() + GlobalConstants.ONE);
Page<CeamSysUser> ceamSysUserPage = page(page, queryWrapper);
IPage<CeaMSysUserVO> ceaMSysUserVOIPage = PageVOUtil.copyToPageVO(ceamSysUserPage, CeaMSysUserVO.class);
return ceaMSysUserVOIPage;
}
@Override
public CeaMSysUserDTO loadUserInfo(String userName) {
LambdaQueryWrapper<CeamSysUser> queryWrapper = Wrappers.<CeamSysUser>lambdaQuery()
.eq(CeamSysUser::getUsername, userName);
CeamSysUser ceamSysUser = baseMapper.selectOne(queryWrapper);
if (ObjectUtils.isEmpty(ceamSysUser)) {
throw new ServiceException("賬號不存在");
}
if (ceamSysUser.getStatus() == GlobalConstants.ONE) {
throw new ServiceException("賬號已禁用");
}
CeaMSysUserDTO ceaMSysUserDTO = BeanCopyUtil.copyProperties(ceamSysUser, CeaMSysUserDTO.class);
return ceaMSysUserDTO;
}
@Override
public void add(CeaMSysUserDTO data) {
CeamSysUser ceamSysUser = BeanCopyUtil.copyProperties(data, CeamSysUser.class);
save(ceamSysUser);
}
@Override
public void edit(CeaMSysUserDTO data) {
CeamSysUser ceamSysUser = BeanCopyUtil.copyProperties(data, CeamSysUser.class);
updateById(ceamSysUser);
}
@Override
public void remove(Long id) {
removeById(id);
}
}
六、uniapp教程(需求分析、各模塊及其節(jié)點(diǎn)文檔、各模塊案例)另外一個(gè)項(xiàng)目
另外一個(gè)項(xiàng)目基于Java+SpringBoot+Vue+Uniapp(有教程)前后端分離健身預(yù)約系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
文章來源:http://www.zghlxwxcb.cn/news/detail-856983.html
七、獲取源碼
?大家點(diǎn)贊、收藏、關(guān)注、評論啦?、需要收些費(fèi)用關(guān)注下方公眾號獲取聯(lián)系方式????????文章來源地址http://www.zghlxwxcb.cn/news/detail-856983.html
到了這里,關(guān)于基于Java+SpringBoot+Vue前后端分離學(xué)生管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(有視頻講解)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!