目录
一、创建导航对象
1、SQL
mainmenu.sql:
/*
Navicat MySQL Data Transfer
Source Server : Testblog
Source Server Version : 50556
Source Host : localhost:3306
Source Database : easyproject
Target Server Type : MYSQL
Target Server Version : 50556
File Encoding : 65001
Date: 2020-05-27 14:48:51
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for mainmenu
-- ----------------------------
DROP TABLE IF EXISTS `mainmenu`;
CREATE TABLE `mainmenu` (
`id` int(50) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`path` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of mainmenu
-- ----------------------------
INSERT INTO `mainmenu` VALUES ('100', '权限管理', '/admin');
INSERT INTO `mainmenu` VALUES ('200', '运动平台', '/use');
submenu.sql:
/*
Navicat MySQL Data Transfer
Source Server : Testblog
Source Server Version : 50556
Source Host : localhost:3306
Source Database : easyproject
Target Server Type : MYSQL
Target Server Version : 50556
File Encoding : 65001
Date: 2020-05-27 14:48:58
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for submenu
-- ----------------------------
DROP TABLE IF EXISTS `submenu`;
CREATE TABLE `submenu` (
`id` int(50) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`path` varchar(255) NOT NULL,
`mid` int(50) NOT NULL,
PRIMARY KEY (`id`),
KEY `mid` (`mid`),
CONSTRAINT `submenu_ibfk_1` FOREIGN KEY (`mid`) REFERENCES `mainmenu` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=204 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of submenu
-- ----------------------------
INSERT INTO `submenu` VALUES ('101', '用户列表', '/user', '100');
INSERT INTO `submenu` VALUES ('102', '修改权限', '/rights', '100');
INSERT INTO `submenu` VALUES ('103', ' 运动模块', '/sport', '100');
INSERT INTO `submenu` VALUES ('104', '商品模块', '/goods', '100');
INSERT INTO `submenu` VALUES ('201', '运动科普', '/Introduction', '200');
INSERT INTO `submenu` VALUES ('202', '卡路里', '/calories', '200');
INSERT INTO `submenu` VALUES ('203', '营养配餐', '/food', '200');
2、菜单对象
一级菜单MainMenu:
package com.zibo.sport.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MainMenu {
private int id;
private String title;
private String path;
List<SubMenu> subMenuList;
}
二级菜单SubMenu:
package com.zibo.sport.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SubMenu {
private int id;
private String title;
private String path;
}
二、编写菜单的持久层
1、MenuDao接口
package com.zibo.sport.dao;
import com.zibo.sport.bean.MainMenu;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface MenuDao {
List<MainMenu> getMainMenuList();
}
2、MenuDao映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zibo.sport.dao.MenuDao">
<!--映射实体-->
<resultMap id="menuMap" type="mainMenu">
<id column="id" property="id"/>
<result column="title" property="title"/>
<result column="path" property="path"/>
<collection property="subMenuList" ofType="subMenu">
<result column="sid" property="id"/>
<result column="stitle" property="title"/>
<result column="spath" property="path"/>
</collection>
</resultMap>
<select id="getMainMenuList" resultMap="menuMap">
SELECT mm.*,sm.id as sid ,sm.title as stitle,sm.path as spath FROM mainmenu mm ,submenu sm WHERE mm.id = sm.mid;
</select>
</mapper>
三、编写菜单控制器
1、MenuController
package com.zibo.sport.controller;
import com.alibaba.fastjson.JSON;
import com.zibo.sport.bean.MainMenu;
import com.zibo.sport.dao.MenuDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
public class MenuController {
@Autowired
MenuDao menuDao;
@RequestMapping("/menus")
public String getAllMenus(){
Map<String, Object> data = new HashMap<>();
List<MainMenu> mainMenus = menuDao.getMainMenuList();
data.put("data",mainMenus);
data.put("status",200);
String data_json = JSON.toJSONString(data);
System.out.println("成功访问!!!");
return data_json;
}
}
(接下来就是前端进行获取导航菜单数据,咱们到前端去写,下一篇笔记进行记录!)