springboot306基于Java的民宿管理系統(源碼+包運行+配套LW+技術指導)

項目描述

臨近學期結束,開始畢業設計制作,你還在做java程序網絡編程,期末作業,老師的作業要求覺的困難嗎?不知道畢業設計該怎么辦?網頁功能的數量是否太多?沒有合適的類型或系統?等等。今天給大家介紹一篇基于Java的民宿管理系統設計與實現。

功能需求

系統分為用戶系統和后臺管理系統,兩個系統分別部署提高安全性。為了讓系統的編碼可以順利進行,特意對本系統功能進行細分設計,設計的系統功能結構見下圖。
在這里插入圖片描述

部分效果圖

在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述

部分代碼

/*** 用戶* 后端接口* @author* @email
*/
@RestController
@Controller
@RequestMapping("/yonghu")
public class YonghuController {private static final Logger logger = LoggerFactory.getLogger(YonghuController.class);@Autowiredprivate YonghuService yonghuService;@Autowiredprivate TokenService tokenService;@Autowiredprivate DictionaryService dictionaryService;//級聯表service/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永不會進入");else if("用戶".equals(role))params.put("yonghuId",request.getSession().getAttribute("userId"));params.put("yonghuDeleteStart",1);params.put("yonghuDeleteEnd",1);if(params.get("orderBy")==null || params.get("orderBy")==""){params.put("orderBy","id");}PageUtils page = yonghuService.queryPage(params);//字典表數據轉換List<YonghuView> list =(List<YonghuView>)page.getList();for(YonghuView c:list){//修改對應字典表字段dictionaryService.dictionaryConvert(c, request);}return R.ok().put("data", page);}/*** 后端詳情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id, HttpServletRequest request){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);YonghuEntity yonghu = yonghuService.selectById(id);if(yonghu !=null){//entity轉viewYonghuView view = new YonghuView();BeanUtils.copyProperties( yonghu , view );//把實體數據重構到view中//修改對應字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到數據");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody YonghuEntity yonghu, HttpServletRequest request){logger.debug("save方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永遠不會進入");Wrapper<YonghuEntity> queryWrapper = new EntityWrapper<YonghuEntity>().eq("username", yonghu.getUsername()).or().eq("yonghu_phone", yonghu.getYonghuPhone()).andNew().eq("yonghu_delete", 1);logger.info("sql語句:"+queryWrapper.getSqlSegment());YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);if(yonghuEntity==null){yonghu.setYonghuDelete(1);yonghu.setCreateTime(new Date());yonghu.setPassword("123456");yonghuService.insert(yonghu);return R.ok();}else {return R.error(511,"賬戶或者手機號已經被使用");}}/*** 后端修改*/@RequestMapping("/update")public R update(@RequestBody YonghuEntity yonghu, HttpServletRequest request){logger.debug("update方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永遠不會進入");//根據字段查詢是否有相同數據Wrapper<YonghuEntity> queryWrapper = new EntityWrapper<YonghuEntity>().notIn("id",yonghu.getId()).andNew().eq("username", yonghu.getUsername()).or().eq("yonghu_phone", yonghu.getYonghuPhone()).andNew().eq("yonghu_delete", 1);logger.info("sql語句:"+queryWrapper.getSqlSegment());YonghuEntity yonghuEntity = yonghuService.selectOne(queryWrapper);if("".equals(yonghu.getYonghuPhoto()) || "null".equals(yonghu.getYonghuPhoto())){yonghu.setYonghuPhoto(null);}if(yonghuEntity==null){yonghuService.updateById(yonghu);//根據id更新return R.ok();}else {return R.error(511,"賬戶或者手機號已經被使用");}}/*** 刪除*/@RequestMapping("/delete")public R delete(@RequestBody Integer[] ids){logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());ArrayList<YonghuEntity> list = new ArrayList<>();for(Integer id:ids){YonghuEntity yonghuEntity = new YonghuEntity();yonghuEntity.setId(id);yonghuEntity.setYonghuDelete(2);list.add(yonghuEntity);}if(list != null && list.size() >0){yonghuService.updateBatchById(list);}return R.ok();}
安裝部署需求

idea運行啟動

系統部署

系統開發后,在生產環境配置項目運行環境,具體步驟如下:
安裝linux或者windows10操作系統;
安裝JDK1.8并配置環境變量;
安裝MySQL5.7版本以上版本數據庫,創建數據庫并執行腳本創建表;
在idea中運行打包;

本項目用到的技術和框架

1.開發語言:Java
2.開發模式:B/S
3.數據庫:MySQL5.7
4.框架:SpringBoot+vue

本項目中的關鍵點

此系統的開發采用java語言開發,基于B/S結構,這些開發環境使系統更加完善。使用到的工具和技術都是開源免費的。

環境工具

開發工具 IDEA
語言 JDK1.8 、SpringBoot、vue
硬件:筆記本電腦;
軟件:Tomcat8.0 Web服務器、Navicat數據庫客戶端、MySQL;
操作系統:Windows 10;
其它軟件:截圖工具、常用瀏覽器;
以上是本系統的部分功能展示,如果你的選題正好相符,那么可以做畢業設計或課程設計使用。

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

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

相關文章

python篇-cmd 執行pip命令失敗,但執行pyhon命令正常

當你在CMD中可以正常執行python命令&#xff0c;但執行pip命令失敗時&#xff0c;這通常意味著pip沒有被正確地添加到系統的環境變量中。這里有一些步驟來解決這個問題&#xff1a; 檢查環境變量&#xff1a; 打開系統的環境變量設置&#xff08;右擊“此電腦”>“屬性”>…

CoSeg: Cognitively Inspired Unsupervised Generic Event Segmentation

名詞解釋 1.特征重建 特征重建是一種機器學習中常用的技術&#xff0c;通常用于自監督學習或無監督學習任務。在特征重建中&#xff0c;模型被要求將輸入數據經過編碼器&#xff08;encoder&#xff09;轉換成某種表示&#xff0c;然后再經過解碼器&#xff08;decoder&#x…

c/c++對于char*的理解(聯合string容器)

在C和C中&#xff0c;char*是一個指向字符&#xff08;char&#xff09;的指針。它經常被用來處理C風格的字符串&#xff0c;這種字符串是以空字符&#xff08;\0&#xff09;結尾的字符數組。以下是關于char*的一些關鍵點&#xff1a; C風格的字符串&#xff1a; C風格的字符…

升級Microsoft 365后,SAP GUI中無法打開Excel的解決方案

最近&#xff0c;我們遇到了一個棘手的問題&#xff0c;一位客戶在升級到Microsoft 365后&#xff0c;無法在SAP GUI中打開Excel。這個問題不僅影響了工作效率&#xff0c;也給用戶的日常操作帶來了不便。在本文中&#xff0c;我們將探討問題的成因&#xff0c;并提供一種解決方…

泛微E9開發 添加多個多選框,實現單選框的效果

利用多個多選框實現單選框的效果 1、功能背景2、展示效果3、實現效果 1、功能背景 如下圖所示&#xff0c;在表單中新增四個“選擇框-復選框”類型的字段&#xff0c;并且設置其中的選項&#xff0c;每個多選框都只有一個選項&#xff0c;通過代碼塊實現單選框的效果 1.顯示模…

鄧閑小——生存、生活、生命|真北寫作

人生有三個層次∶生存、生活、生命。 生存就是做必須做的事。生存的模式是鄧&#xff0c;是交易&#xff0c;是買賣。別人需要的東西&#xff0c;你生產出來&#xff0c;賣給他。哪怕這個東西沒啥用&#xff0c;也可以賣&#xff0c;情緒也可以賣。你需要的東西&#xff0c;你花…

分布式與一致性協議之POW算法

POW算法 概述 談起比特幣&#xff0c;你應該并不陌生。比特幣是基于區塊鏈實現的&#xff0c;而區塊鏈運行在因特網上&#xff0c;這就存在有人試圖作惡的情況。有些讀者可能已經發現了&#xff0c;口信消息型拜占庭問題之解、PBFT算法雖然能防止壞人作惡&#xff0c;但只能防…

代碼隨想錄算法訓練營第二十三天 | 530.二叉搜索樹的最小絕對差、501.二叉搜索樹中的眾數、236. 二叉樹的最近公共祖先

目錄 530.二叉搜索樹的最小絕對差 思路 代碼 501.二叉搜索樹中的眾數 思路 代碼 236. 二叉樹的最近公共祖先 思路 代碼 530.二叉搜索樹的最小絕對差 需要領悟一下二叉樹遍歷上雙指針操作&#xff0c;優先掌握遞歸 題目鏈接/文章講解&#xff1a;代碼隨想錄 視頻講解…

Java Spring的定時任務的配置和使用

在Spring框架中&#xff0c;配置和使用定時任務主要涉及Scheduled注解以及Spring的異步任務執行能力。以下是詳細步驟&#xff1a; 1. 引入依賴 對于Spring Boot項目&#xff0c;通常已經包含了Spring框架&#xff0c;因此不需要額外添加定時任務的依賴。如果使用的是Spring框…

AI大模型測評系統opencompass源碼解析

1 注冊器(Registry) 為了管理功能相似的模塊,MMEngine實現了注冊器。注冊器可以被視作這些類或函數的抽象。例如注冊器 MODELS 可以被視作所有模型的抽象。 1.1 什么是注冊器 MMEngine 實現的注冊器可以看作一個映射表和模塊構建方法(build function)的組合。 映射表:…

八、e2studio VS STM32CubeIDE之內存使用情況窗口

目錄 一、概述/目的 二、STM32CubeIDE Build Analyzer 三、e2studio Memory Usage 八、e2studio VS STM32CubeIDE之內存使用情況窗口 一、概述/目的 1、嵌入開發最大特點之一就是資源受限&#xff0c;關注芯片資源使用詳情是優秀工程師的技能之一 2、Keil和IAR都不支持內存…

CTFshow 信息搜集

第一題1 進入靶場 直接看源碼發現flag 第二題 1 按右鍵沒辦法看源碼 按ctrlu可以查看源碼 第三題 0 查看源碼 發現還是什么都沒有 用bp抓包發現flag 第四題1 直接進robots.txt 訪問flagishere.txt獲得flag 第五題 0 提示了phps源碼泄露 用目錄掃描工具沒掃出來 看wp 發現有…

網絡編程套接字詳解

目錄 1. 預備介紹 2.網絡字節序 3.udp網絡程序 4.地址轉換函數 5.udp網絡編程 1.預備介紹 1.1源IP地址和目標IP地址 舉個例子: 從北京出發到上海旅游, 那么源IP地址就是北京, 目標IP地址就是上海. 1.2 端口號 作用: 標識一個進程, 告訴OS這個數據交給那個進程來處理; (1)…

Oracle: 一個用戶多個表空間處理

1.場景描述 今天工作中&#xff0c;同事說建了一個用戶&#xff0c;往里面導入數據時提示表空間不存在&#xff0c;建了表空間后&#xff0c;部分仍然導不進去。期望幫忙創建表空間&#xff0c;并指定默認表空間&#xff0c;成功將數據導入。 &#xff08;1&#xff09;創建好的…

K8s:二進制安裝k8s(單臺master)

目錄 一、安裝k8s 1、拓撲圖 2、系統初始化配置 2.1關閉防火墻selinx以及swap 2.2設置主機名 2.3在每臺主機中添加hosts&#xff0c;做映射 2.4調整內核參數&#xff0c;將橋接的ipv4流量傳遞到iptables&#xff0c;關閉ipv6 2.4時間同步 3、部署docker引擎&#xff0…

使用LangChain和Neo4j快速創建RAG應用

大家好&#xff0c;Neo4j 通過集成原生的向量搜索功能&#xff0c;增強了其對檢索增強生成&#xff08;RAG&#xff09;應用的支持&#xff0c;這標志著一個重要的里程碑。這項新功能通過向量索引搜索處理非結構化文本&#xff0c;增強了 Neo4j 在存儲和分析結構化數據方面的現…

go語言map底層及擴容機制原理詳解(上)

底層數據結構-哈希表 go語言map的底層數據結構是哈希表&#xff1a;通過哈希表來存儲鍵值對&#xff0c;通過hash函數把鍵值對散列到一個個桶(bucket)中。 什么是哈希表&#xff1f; 在順序結構以及平衡樹中&#xff0c;元素與其的存儲位置之間沒有對應關系&#xff0c;因此…

SwiftUI中的@StateObject和@ObservedObject的區別

SwiftUI中的StateObject和ObservedObject屬性包裝器指示視圖更新以響應被觀察對象的變化。雖然這兩個屬性包裝器看起來很相似&#xff0c;但在使用SwiftUI構建應用程序時&#xff0c;有一個關鍵的區別需要理解。 兩個屬性包裝器都要求對象符合ObservableObject協議。這個協議表…

表征和基于結構的蛋白質工程:黃芪特異性皂苷乙酰轉移酶-文獻精讀14

Characterization and structure-based protein engineering of a regiospecific saponin acetyltransferase from Astragalus membranaceus 表征和基于結構的蛋白質工程&#xff1a;黃芪特異性皂苷乙酰轉移酶&#xff0c;一篇乙酰基轉移酶文章精讀分享~ 摘要 乙酰化有助于許…

【C++】繼承相關(基類與派生類的繼承關系以及細節整理)

目錄 00.引言 01.繼承的定義 02.基類和派生類對象 03.繼承中的作用域 04.派生類的默認成員函數 05.友元、靜態成員 00.引言 繼承是面向對象編程中的一個重要概念&#xff0c;它的作用是創建一個新的類&#xff0c;該類可以從一個已存在的類&#xff08;父類/基類&#x…