java springboot+mybatis+oracle+web实现首页动态菜单列表
时间: 2023-09-20 09:11:11 浏览: 140
实现首页动态菜单列表需要以下几步:
1. 在数据库中创建菜单表,包含菜单ID、菜单名称、菜单URL、父级菜单ID等字段。
2. 创建菜单实体类,与菜单表对应。
3. 使用Mybatis框架,在Mapper.xml文件中编写SQL语句,实现菜单的增删改查操作。
4. 在Spring Boot项目中创建菜单服务类和菜单控制器类,编写菜单的业务逻辑和接口。
5. 在页面中使用Thymeleaf模板引擎,展示菜单列表。
下面是一个简单的示例:
1. 在Oracle数据库中创建菜单表:
```
CREATE TABLE MENU
(
MENU_ID NUMBER(10) PRIMARY KEY,
MENU_NAME VARCHAR2(50),
MENU_URL VARCHAR2(100),
PARENT_ID NUMBER(10)
);
```
2. 创建菜单实体类:
```java
public class Menu {
private Integer menuId;
private String menuName;
private String menuUrl;
private Integer parentId;
//getter and setter
}
```
3. 在Mapper.xml文件中编写SQL语句:
```xml
<!--查询所有菜单-->
<select id="findAllMenus" resultType="com.example.demo.entity.Menu">
SELECT * FROM MENU
</select>
```
4. 创建菜单服务类和菜单控制器类:
```java
@Service
public class MenuService {
@Autowired
private MenuMapper menuMapper;
public List<Menu> findAllMenus() {
return menuMapper.findAllMenus();
}
}
@Controller
public class MenuController {
@Autowired
private MenuService menuService;
@GetMapping("/")
public String index(Model model) {
List<Menu> menus = menuService.findAllMenus();
model.addAttribute("menus", menus);
return "index";
}
}
```
5. 在页面中使用Thymeleaf模板引擎,展示菜单列表:
```html
<ul>
<li th:each="menu : ${menus}">
<a th:href="${menu.menuUrl}" th:text="${menu.menuName}"></a>
<ul th:if="${not #lists.isEmpty(menu.children)}">
<li th:each="child : ${menu.children}">
<a th:href="${child.menuUrl}" th:text="${child.menuName}"></a>
</li>
</ul>
</li>
</ul>
```
阅读全文