【VUE小型网站开发】优化通用配置 二

1. 引入 MyBatis Plus

1.1 添加依赖

xml 复制代码
<dependencies>
    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- MyBatis Plus Starter -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.3</version> <!-- 请使用最新版本 -->
    </dependency>

    <!-- MySQL Connector -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version> <!-- 请使用最新版本 -->
    </dependency>

    <!-- Lombok (可选,用于简化代码) -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.20</version> <!-- 请使用最新版本 -->
        <scope>provided</scope>
    </dependency>
</dependencies>

1.2 配置数据库连接

在 application.yml 或 application.properties 文件中配置数据库连接信息

yaml 复制代码
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/tool?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    username: username
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

1.3 新建实体类

这边直接修改原来的Menu实体类,添加@TableName("menu"),对应到表么menu

java 复制代码
package com.tool.tooladmin.admin.menu.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
@TableName("menu")
public class Menu {
    private Long menuId;
    private Long parentId;
    private String menuName;
    private String path;
    private String icon;
    private Long sort;
    private Long isFrame;
    private String query;
    @TableField(exist = false)
    private List<Menu> children;
}

1.4 创建 Mapper 接口

创建一个 MenuMapper接口,并继承 BaseMapper。MyBatis Plus 提供了丰富的 CRUD 方法,无需手动编写 SQL 语句。

java 复制代码
package com.tool.tooladmin.admin.menu.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tool.tooladmin.admin.menu.domain.Menu;

public interface MenuMapper extends BaseMapper<Menu> {
}

1.5 配置 MyBatis Plus

在 Spring Boot 的主配置类中,添加 @MapperScan 注解,扫描 Mapper 接口所在的包。

java 复制代码
package com.tool.tooladmin;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.tool.tooladmin.admin.menu.mapper") // 替换为你的 Mapper 接口所在包,可以只加载到个别,也可以设置父级,这样可以扫描到下面所有的mapper
public class ToolAdminApplication {

    public static void main(String[] args) {
        SpringApplication.run(ToolAdminApplication.class, args);
    }
}

1.6 修改前端menu对应的值

前面改了menu实体类,需要修改前端对应的参数

html 复制代码
<template>
  <div>
    <el-menu-item v-if="!item.children || item.children.length === 0" :index="item.path || item.menuId">
      <span>{{ item.menuName }}</span>
    </el-menu-item>
    <el-sub-menu v-else :index="item.path || item.menuId">
      <template #title>
        <span>{{ item.menuName }}</span>
      </template>
      <menu-item v-for="child in item.children" :key="child.menuId" :item="child" />
    </el-sub-menu>
  </div>
</template>

<script setup>
import { defineProps } from 'vue';

const props = defineProps({
  item: {
    type: Object,
    required: true
  }
});
</script>
相关推荐
梦曦i3 小时前
@meng-xi/create-uni-app vs unibest:轻量脚手架与重型框架的定位之争
前端·uni-app
平头哥技术团队3 小时前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
乌恩大侠3 小时前
GH200 新增 NVMe SSD 分区、格式化与挂载完整流程
运维·服务器·前端
yume_sibai3 小时前
Element Plus 数据展示组件完全指南(15个核心组件)
前端·javascript·vue.js
qiuhaipeng14 小时前
Claude code 升级后上下文长度变短问题
java·前端·数据库
zzz_23684 小时前
个人 AI 记忆如何跨工具复用:用 Markdown、索引和 Skill 搭一个可治理的记忆库
前端·人工智能·react.js·前端框架·agent·agent测评
剑之所向6 小时前
.NET 官方`System.Threading.Channels`
前端·javascript·数据库
计算机魔术师6 小时前
GPT-6 Astra幻觉砍到2%,却被一种老招数轻松绕过
前端
cjy0001117 小时前
2026AI 产品如何从一次性 Demo 变成可重复使用的业务工具?
前端·人工智能·fde
IT_陈寒7 小时前
React的状态更新坑得我差点加班到天亮
前端·人工智能·后端