菜單權限管理

菜單管理系統的整體架構

1.Menu 菜單表

2.role 角色表

3.role_menu 角色菜 單關聯表(多對多?)

要找role_id為3的角色能用哪個菜單:

SELECT *FROM sys_menu a LEFT JOIN sys_role_menu b 
ON a.menu_id= b.menu_id WHERE role_id=3

拆分開就是

4.user 用戶表

5.user_role?用戶角色關聯表 (多對多)

前后端數據庫是如何交互的

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Ajax

瀏覽器------>ngix<-------------->Tomcat------->DB

jdbc的工作原理

即java Database connectivity

其中有一個getConnection(url,user,password)來提供給DriverManager管理,來存儲到一個Connection對象

其中有三個類Connection? statement? ResultSet

statement是用來實現SQL語句

ResultSet中存儲著鍵值對,比如id:1? ?name:張三? id:2? name:李四.....

int id = resultSet.getInt(id);
String name = resultSet.getString(name);persion.setId(id);
persion.setName(name);

它是用來把數據庫的內容存儲到對象中

聯表查詢顯示圖書類型下拉菜單

以在圖書管理系統的圖書index.vue中顯示圖書類型的下拉菜單為例

1.首先,我們寫一個下拉菜單select

<el-form-item label="圖書類型"><el-select v-model="form.typeId" placeholder="請選擇圖書類型"><el-option v-for="typelist in typeLists" :key="typelist.id" :label="typelist.name":value="typelist.id"></el-option></el-select>
</el-form-item>

其中form.typeId的typeId所對應的是Book類里的typeId字段,當表單提交時,前端會將?form?對象的數據(包括?typeId)傳遞給后端。

2.我們用到了typelists列表,所以要在data里定義一個數組typelists[]

data(){
typelists[]
}

3.在method中寫一個動態獲取typeList的函數

 getBooktypeList() {listBooktype1().then(response => {// console.info(response.data)this.typeLists = response.data;})}

把listBooktype1()得到的響應賦值給typeLists

4.在created中初始化函數getBooktypeList()

created() {this.getBooktypeList()},

5.實現?listBooktype1()

在booktype.json獲取圖書類型內容

export function listBooktype1() {return request({url: '/book/booktype/typeList',method: 'get',})
}

url和后端BookTypeController的mapping對應

6.查詢符合條件的圖書類型封裝到AjaxResult?對象中供前端獲取

@PreAuthorize("@ss.hasPermi('book:booktype:list')")@GetMapping("/typeList")public AjaxResult typeList(BookType bookType){startPage();List<BookType> list = bookTypeService.selectBookTypeList(bookType);AjaxResult j = AjaxResult.success(list);return j;}

7.在book類里添加bookType屬性和typeId屬性,并提供set,get方法

private Integer typeId;
private BookType  bookType;

8.在前端顯示bookType.name

      <el-table-column label="圖書類型" align="center" prop="bookType.name"/>

9.在Mapper中修改sql語句

在查詢圖書數據的時候?

select a.id aid,a.name aname,author,a.num anum,price, b.name bname,type_id 
from t_book a 
LEFT JOIN t_book_type b 
ON a.type_id = b.id

記得要查詢type_id來默認顯示當前的圖書類型在修改菜單的下拉框內

因為更改了別名所以要更換resultMap的內容

<resultMap type="Book" id="BookResult">
<!--              對象              數據庫--><result property="id"    column="aid"    /><result property="name"    column="aname"    /><result property="author"    column="author"    /><result property="num"    column="anum"    /><result property="price"    column="price"    /><result property="typeId"    column="type_id"    /><result property="bookType.name"    column="bname"    /><result property="bookType.id"    column="type_id"    />
</resultMap>

因為改了別名,所以對應的要修改查詢中其它字段的名字?

10.增和改要添加關于type_id的內容

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

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

相關文章

SQL FOREIGN KEY:詳解及其在數據庫設計中的應用

SQL FOREIGN KEY:詳解及其在數據庫設計中的應用 引言 在數據庫設計中,數據完整性是至關重要的。SQL FOREIGN KEY(外鍵)是實現數據完整性的一種有效手段。本文將詳細解釋SQL FOREIGN KEY的概念、用途以及在實際數據庫設計中的應用。 外鍵概述 1. 定義 外鍵(FOREIGN KE…

[yotroy.cool] 記一次 spring boot 項目寶塔面板部署踩坑

個人博客https://www.yotroy.cool/&#xff0c;感謝關注&#xff5e; 圖片資源可能顯示不全&#xff0c;請前往博客查看哦&#xff01;部署了個新項目&#xff0c;給我整抑郁了。。。下面是踩坑過程 寶塔面板 MySql5.7 版本 root 密碼錯誤 這個MySQL5.7 安裝完后就跑不了&#…

前端之HTML學習

HTML 學習筆記 前端三大件 HTML&#xff1a;超文本標記語言&#xff08;HyperText Markup Language&#xff09;CSS&#xff1a;層疊樣式表JavaScript&#xff1a;客戶端腳本語言常用框架&#xff1a;jQuery Vue 3(Element plus) HTML 基本概念 超文本&#xff1a;包含圖像…

迅速高效從web2到web3轉型 ,開啟遠程工作

Web2向Web3的轉型&#xff0c;是技術、產品、組織結構和商業模式的深度變革。若要迅速且高效地完成這個轉型&#xff0c;需要清晰的路徑規劃和戰略執行。 目錄 &#x1f501; 一、理解核心區別&#xff1a;Web2 vs Web3 &#x1f680; 二、轉型路徑 1. 選擇合適的切入點 …

區塊鏈開發協作工具全景圖:從智能合約管理到去中心化治理

&#x1f4a5; 三重絞索&#xff1a;區塊鏈開發的至暗時刻 1. 版本管理的深淵 當某DeFi團隊凌晨修復漏洞時&#xff0c;發現生產環境運行的竟是兩周前的廢棄分支——37%的項目因代碼分支混亂引發生產事故&#xff08;Electric Capital 2024&#xff09;。智能合約的版本漂移如同…

冒泡排序、選擇排序、插入排序、快速排序

目錄 1. 冒泡排序 (Bubble Sort) 算法思路分析 代碼實現 復雜度分析 2. 選擇排序 (Selection Sort) 算法思路分析 代碼實現 復雜度分析 3. 插入排序 (Insertion Sort) 算法思路分析 代碼實現 復雜度分析 4. 快速排序 (Quick Sort) 算法思路分析 代碼實現 復雜度…

PHP語言基礎知識(超詳細)第一節

一. PHP簡介: PHP即“超文本預處理器”,創建于1994年,是一種通用開源腳本語言。PHP是在服務器端執行的腳本語言,與C語言類似,是常用的網站編程語言。PHP獨特的語法混合了C、Java、Perl以及 PHP 自創的語法。利于學習,使用廣泛,主要適用于Web開發領域。 二. PHP的優點:…

Reloaded-II項目:解決GitHub下載Mod缺少DLL文件的問題

Reloaded-II項目&#xff1a;解決GitHub下載Mod缺少DLL文件的問題 問題現象分析 在使用Reloaded-II項目加載從GitHub下載的"Debug Stuff"模組時&#xff0c;用戶遇到了一個常見的技術問題&#xff1a;系統提示缺少DLL文件&#xff0c;導致模組無法正常運行。這種情況…

0-1搭建springboot+vue的教務管理系統(核心源碼)

目錄 后端核心代碼&#xff1a; control層 service 層 mapper層 后端核心代碼&#xff1a; control層&#xff1a; classControlsImpl package com.itheima.controls.impl;import com.itheima.mapper.ClassMapper; import com.itheima.pojo.Clazz; import com.itheima.po…

Ubuntu中man手冊不全解決以及man手冊中英文切換方法

步入正題之前&#xff0c;先來幫助大家了解一下man手冊的作用&#xff0c;讓大家對其有更深的理解并充分利用一、man 手冊的作用?man 手冊&#xff0c;即 manual pages&#xff0c;是 Linux 系統自帶的幫助文檔系統。通過 man 命令&#xff0c;用戶能快速獲取系統中幾乎所有命…

數據結構----線性表(棧及其棧的實現)C語言 學習筆記

棧&#xff1a;線性邏輯結構棧的分類 順序棧&#xff1a;順序存儲結構實現的棧鏈式棧&#xff1a;鏈式存儲結構實現的棧相關概念線性表&#xff1a;可以在任意位置操作棧&#xff1a;對線性表進行約束只能在一端插入和刪除操作的線性表&#xff0c;中間不允許操作。棧底&#x…

手滑誤操作? vue + Element UI 封裝二次確認框 | 附源碼

一諾最近在做后臺管理系統時&#xff0c;遇到一個很常見但又容易被忽視的小問題&#xff1a;單選框切換時&#xff0c;用戶一不小心點錯&#xff0c;原有配置就沒了&#xff0c;數據丟失&#xff0c;后悔也來不及。你是不是也遇到過類似的場景&#xff1f;比如切換網絡模式、切…

力扣刷題367——有效的完全平方數

力扣刷題367——有效的完全平方數&#xff08;69的相似題&#xff09; 題目&#xff1a; 給你一個正整數 num 。如果 num 是一個完全平方數&#xff0c;則返回 true &#xff0c;否則返回 false 。 完全平方數 是一個可以寫成某個整數的平方的整數。換句話說&#xff0c;它可以…

kubernetes架構原理與集群環境部署

kubernetes架構原理與集群環境部署概述為什么需要 KubernetesKubernetes 帶來的挑戰kubernetes架構解析master 節點的組件(1)API server(2)scheduler(3)Controller Manager(4)etcdNode 節點包含的組件(1)容器運行時(2)kubelet(3)kube-proxy代理kubernetes 網絡插件(1)Flannel 網…

Python爬蟲實戰:Requests與Selenium詳解

目錄 一 網絡爬蟲的了解 1 爬蟲庫 urllib庫 requests庫 scrapy庫 selenium庫 2 注意&#xff01;&#xff01;&#xff01; 二 requests庫 1 request庫的安裝 2 認識網頁資源 3 獲取網頁資源 4 小案例 5 代理服務器 三 selenium 1 準備工作 2 應用 3 實例 一 網…

什么是樂觀鎖?什么是悲觀鎖?

&#x1f512; 深入淺出&#xff1a;樂觀鎖 vs 悲觀鎖終極對決&#xff01;面試必考知識點詳解 各位CSDN的小伙伴們好呀&#xff01;&#x1f44b; 我是雪碧聊技術&#xff0c;今天給大家帶來高并發編程中的核心概念——樂觀鎖與悲觀鎖的深度解析&#xff01;&#x1f4bb; 無論…

HTML前端性能優化完整指南

圖片優化&#xff1a;性能優化的重中之重 重新審視圖片的必要性 在開始優化之前&#xff0c;首先需要思考一個根本問題&#xff1a;要實現預期的視覺效果&#xff0c;真的需要使用圖片嗎&#xff1f; 隨著Web技術的快速發展&#xff0c;許多以往只能通過圖片實現的效果&…

數據煉金術:用Python做智能數據整理員

數據煉金術&#xff1a;用Python做智能數據整理員 解鎖自動化魔法&#xff1a;文件批量重命名Excel智能清洗數據凈化全流程實戰 一、數據整理的困境與破局之道 你是否面臨這些數據噩夢場景&#xff1f; &#x1f9e9; ??混亂文件目錄??&#xff1a;最終版_報告_V4(1).doc…

HTML基礎P1 | HTML基本元素

HTML標簽標簽名放在<>中&#xff0c;如<body>大部分標簽成對出現&#xff0c;如<h1>為開始標簽&#xff0c;</h1>為其對應的結束標簽&#xff0c;少數標簽只有開始標簽&#xff0c;如換行標簽<br/>&#xff0c;成為"單標簽"有的標簽中…

LVS集群搭建

集群是為了解決某個特定問題將多臺計算機組合起來形成的單個系統知識點&#xff1a;1.關鍵術語&#xff1a;VS&#xff1a;Virtual Server&#xff08;調度器&#xff09;RS&#xff1a;Real Server&#xff08;真實服務器&#xff09;CIP&#xff1a;Client IP&#xff08;客戶…