學成在線。。。

一:講師管理

介紹:可以實現對講師的分頁展示,多條件組合分頁查詢,對講師的添加,修改,刪除操作。

針對于添加來說,使用requestBody注解,搭配postmapping接收數據,使用service層的對象,調用mapper方法,向數據庫中保存數據。

修改:

先根據講師id,查詢出講師,再去修改

創建時間和更新時間在實體類中使用TabledField注解,實現自動填充。

對講師分頁展示;支持多條件組合查詢教師;

        分頁展示:

     使用mp的分頁插件,在接口中,通過路徑,接收當前頁和每頁記錄數,接著創建page對象,接收兩個參數,一個是當前頁碼,一個是當前頁的記錄數。調用方法,把page對象傳進去,會將分頁所有數據封裝到這個page對象當中,通過page對象,返回所有數據的一個list集合。 

        多條件組合帶分頁的查詢:

        用戶選擇不同的條件,可以查出不同的教師。

首先要把條件值封裝到vo當中,把vo再傳給接口。(vo中包括講師名稱,級別,開始和結束時間)。

然后會對傳來的條件值進行判空,如果不為空,就拼接條件,使用page方法根據條件,查詢出符合的數據,最后返回數據。

常用注解:

requestBody:前端用json傳遞數據,把數據封裝到對應的對象當中。

需要搭配psot提交;

還要注意傳來的數據是否可以為空,如果可以為空,就要設置required為false

reponseBody:用于返回json數據。

PathVariable:將url中的變量綁定到方法中的參數上。

Value:用來讀取配置文件中的數據,保存到變量中。

上傳講師頭像:

將id和密鑰保存到配置文件當中,使用常量類,讀取配置文件中的內容。

在相關接口中,接收文件變量,使用阿里云的相關方法,先創建出一個oss實例

再獲取一個文件輸入流

調用oss實例中的put方法,實現上傳,返回保存的文件路徑

文件路徑需要手動拼接出來:由桶的名稱+站點名稱+文件名稱

方法的參數有:bucket名稱,輸入流,文件名

 

 使用datetime獲取當前時間,再把當前時間拼接到文件名稱里面,這樣在進行上傳的時候,就可以在阿里云中根據時間,建立相應的文件夾,來對文件進行分類。

問題:

1:如何使用oss服務

在使用oss服務之前,需要在阿里云中創建出bucket,也就相當于一個文件夾,用來存儲相關文件

再得到id和密鑰,只有有了這個,才有相關權限去操作。

再去Java工程中引入相關依賴,就可以操作相關方法,上傳相關文件。

2:多次上傳文件,如果文件名相同會被覆蓋,如何解決

通過使用uuid的random方法,給文件名稱添加唯一的隨機值。

二:課程分類管理

課程分類管理是我負責開發的,負責展示相關課程,進行二級分類展示。

樹形分類展示:

1:首先需要將數據存入到數據庫中

使用的easyexcel,讀取數據是從磁盤中一行一行讀取,而不是將文件一次性讀到內存當中

根據excel的列表頭創建對應的實體類

在接口中獲取文件輸入流

獲取到文件之后,調用easyexcel的read方法進行讀取,參數有輸入流,實體類,監聽器對象

接下來需要實現監聽器這個類:

它是進行一行一行的讀取數據的

監聽器這個類,交給不了spring管理,那么在這個監聽器中,就注入不了其他對象,所以就將其他對象傳給監聽器的構造方法,實現將其他對象注入到這個監聽器類中。

這個類中有兩個方法,一個是invoke方法,用來讀取excel數據。

由于有每一行中第一個數據是一級分類,第二個數據是二級分類

所以就先讀第一個數據,讀取到數據庫中,再讀第二個數據,讀取到數據庫中

在進行讀取時,要進行判斷數據是否重復

是根據名稱和parentid值進行判斷,一級分類的parentid值都是0,二級分類的parentid值是它對應的一節分類的parentid值

2:存入之后,需要給前端返回數據,構建出前端需要的類型的數據

分析:最外層是一個json類型的數組,數組里面又有多個對象,每個對象中,有一級分類,又有一個數組,數組當中又有多個對象,對象中是二級分類。

其實就是最后返回一個list集合,這個集合里面存儲一級分類的對象,在這個對象當中又有一個集合,用來存儲二級分類對象。簡單就是集合里面存對象,對象里面又存集合,

第一步:根據返回數據,建立對應的實體類

第二步: 在兩個實體類之間表示關系&

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/80876.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80876.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/80876.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Webug3.0通關筆記17 中級進階(第01-05關)

目錄 第一關 出來點東西吧 1.打開靶場 2.源碼分析 3.源碼修正 4.文件包含漏洞滲透 第二關 提交方式是怎樣的啊? 1.打開靶場 2.源碼分析 3.滲透實戰 (1)bp改包法 (2)POST法滲透 第三關 我還是一個注入 1.打開…

C語言復習筆記--內存函數

在復習完字符函數和字符串函數之后,今天讓我們復習一下內存函數吧.這一塊的東西不太多,并且與之前的字符串函數有一些地方很相似,所以這里應該會比較輕松. memcpy使用和模擬實現 老規矩,先看函數原型 void * memcpy ( void * destination, const void * source, size_t num );…

【Unity AR開發插件】一、高效熱更新:Unity AR 插件結合 HybridCLR 與 ARFoundation 的開源倉庫分享

摘要 本篇博客詳細介紹了我基于 HybridCLR 與 AR Foundation 的 Unity AR 開發插件,旨在為開發者提供高效的跨平臺熱更新方案。文章從背景與動機出發,覆蓋一鍵安裝工具、環境配置、熱更新數據制作與示例程序運行等核心模塊,并展示代碼結構與使…

數據分析(四):Python Pandas數據輸入輸出全流程指南

Python Pandas數據輸入輸出全流程指南 1. 引言 數據輸入輸出(I/O)是數據分析工作流中最基礎也是最重要的環節之一。Pandas提供了豐富的數據讀寫接口,支持從各種文件格式和數據庫中加載數據,以及將處理后的數據保存到不同存儲系統中。本文將全面介紹Pan…

人工智能與機器學習:Python從零實現性回歸模型

?? 向所有學習者致敬! “學習不是裝滿一桶水,而是點燃一把火。” —— 葉芝 我的博客主頁: https://lizheng.blog.csdn.net ?? 歡迎點擊加入AI人工智能社區! ?? 讓我們一起努力,共創AI未來! ?? 前言 在 AI 的熱潮中,很容易忽視那些讓它得以實現的基礎數學和技…

Ubuntu18.04更改時區(圖文詳解)

Ubuntu18.04更改時區 1、前言2、更改時區3、總結 1、前言 記錄一下Ubuntu18.04更改時區的過程,方便自己日后回顧,也可以給有需要的人提供幫助。 2、更改時區 輸入下面的指令,進行時區選擇 tzselect輸入4選擇亞洲,輸入9選擇中…

vue2 項目使用vite2 升級 vite4 后,對別名的解析有問題,導致打包后項目無法正常運行

問題描述: 之前使用的 vite2 版本,需要在 vite.config 里配置 vue 別名,不然會有commonjs 的依賴包找不到 vue,因為 vite 默認使用 esm 版本。 vue: vue/dist/vue.common.prod.js 在 vite2 中可以正常進行打包上線,…

民辦生從零學C的第十二天:指針(1)

每日勵志:拼搏十年,征戰沙場,不忘初心,努力成為一個渾身充滿銅臭味的有錢人。 一.內存和地址 1.內存 計算機內存是一系列存儲單元的集合,每個存儲單元都有唯一的地址來標識。這些存儲單元用于存儲程序的數據和指令。…

用Postman驗證IAM Token的實際操作

當我們需要用Postman發送一個最簡單的請求去驗證Token的時候我們該怎么辦? 【一、步驟】 步驟1:打開Postman,新建一個GET請求 請求地址填: https://iam.cn-north-4.myhuaweicloud.com/v3/auth/projects 解釋一下:…

關于常量指針和指向常量的指針

關于指針,對于常量指針和指向常量的指針也是傻傻分不清。看到定義時,不知道是指針不能變,還是指針指向的內容不能變量。 先看形式: const char * A; char * const B; 這兩種有什么區別?傻傻分不清。 A這種定義&am…

unity 讀取csv

1.讀取代碼 string filePath Application.streamingAssetsPath "\\data.csv"; public List<MovieData> movieData new List<MovieData>(); private void ReadCSV(string filePath) { List<List<string>> data new List<…

安達發|高效智能塑料切割數控系統 - 全自動化軟件解決方案

在當今的制造業中&#xff0c;塑料作為一種輕便、耐用且成本效益高的材料&#xff0c;被廣泛應用于各個領域。隨著科技的進步和市場需求的變化&#xff0c;塑料加工行業正面臨著前所未有的挑戰和機遇。為了提高生產效率&#xff0c;降低成本&#xff0c;并滿足日益嚴格的質量標…

c#接口_抽象類_多態學習

c#接口_抽象類_多態學習 學習日志 關于&#xff1a;c#接口_抽象類_多態的學習記錄。 一、概念 1. 多態&#xff08;Polymorphism&#xff09; 定義&#xff1a;同一操作作用于不同對象時&#xff0c;表現出不同的行為。實現方式&#xff1a; 繼承 方法重寫&#xff08;ov…

智能硬件行業售后服務管理:提升客戶體驗的關鍵所在

在當今數字化浪潮的推動下&#xff0c;智能硬件行業正以前所未有的速度蓬勃發展。從智能家居設備的普及&#xff0c;到智能穿戴產品的多樣化&#xff0c;再到智能辦公設備的廣泛應用&#xff0c;智能硬件已經深入到我們生活的方方面面。據市場研究機構預測&#xff0c;未來幾年…

Vue3 里 CSS 深度作用選擇器 :deep()

&#x1f3af; 解釋 在 Vue 組件里&#xff0c;CSS 默認是 scoped&#xff08;作用域限定的&#xff09;&#xff0c;只對當前組件生效。 如果你想在 scoped 樣式里&#xff0c;穿透到子組件的內部元素&#xff0c;就要用 :deep()。 ?? 示例 比如&#xff0c;你有一個子組件…

仙宮云ComfyUI —【Wan2.1】AI視頻生成部署

【Wan2.1】AI視頻生成本地部署與使用技巧全面詳解_嗶哩嗶哩_bilibili 所有模型下載&#xff1a;https://pan.quark.cn/s/9d793aa1b258 Runninghub本期課程工作流下載&#xff08;可獲得1000RH幣&#xff09;&#xff1a;https://www.runninghub.cn/?utm_sourcekol01-RH145 仙…

LabVIEW 在測控領域的深度開發與未來發展趨勢研究報告 (2025-2030)(原創作品使用請注明出處,三連)

## LabVIEW 在測控領域的深度開發與未來發展趨勢研究報告 (2025-2030) ### 引言 LabVIEW(Laboratory Virtual Instrument Engineering Workbench)自 1986 年由美國國家儀器公司(NI)發布以來,憑借其獨特的圖形化編程語言(G 語言)和強大的硬件集成能力,已成為全球工程師和…

政策支持與市場驅動:充電樁可持續發展的雙輪引擎

隨著全球能源轉型加速&#xff0c;新能源汽車成為實現低碳交通的重要方向。然而&#xff0c;充電基礎設施不足仍是制約其普及的關鍵瓶頸。當前&#xff0c;國際主流的充電樁運營模式包括政府推動、電網企業推動及汽車廠商推動三種模式&#xff0c;但單一模式均存在顯著局限性。…

JVM——垃圾收集策略

GC的基本問題 什么是GC&#xff1f; GC 是 garbage collection 的縮寫&#xff0c;意思是垃圾回收——把內存&#xff08;特別是堆內存&#xff09;中不再使用的空間釋放掉&#xff1b;清理不再使用的對象。 為什么要GC&#xff1f; 堆內存是各個線程共享的空間&#xff0c…

用Java模擬打字:深入解析 java.awt.Robot 的鍵盤控制藝術

作為開發者&#xff0c;我們有時會遇到需要自動化用戶界面交互的場景&#xff0c;比如自動化測試、腳本編寫、或者制作一些輔助工具。而模擬鍵盤輸入&#xff0c;尤其是“打字”&#xff0c;是這類自動化任務中非常基礎且常見的一環。 在 Java 中&#xff0c;實現這一目標的利…