ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

MyBatis查询优化:枚举在条件构建中的妙用

2026/8/17 0:31:27 拓冰建站 浏览量
MyBatis查询优化:枚举在条件构建中的妙用

🚀 作者主页: 有来技术
🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot
🌺 仓库主页: Gitee 💫 Github 💫 GitCode
💖 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请纠正!

枚举定义

package com.youlai.system.common.enums;
/*** 菜单类型枚举** @author haoxr* @since 2022/4/23 9:36*/public enum MenuTypeEnum implements IBaseEnum<Integer> {NULL(0, null),MENU(1, "菜单"),CATALOG(2, "目录"),EXTLINK(3, "外链"),BUTTON(4, "按钮");@Getter@EnumValue //  Mybatis-Plus 提供注解表示插入数据库时插入该值private Integer value;@Getter// @JsonValue //  表示对枚举序列化时返回此字段private String label;MenuTypeEnum(Integer value, String label) {this.value = value;this.label = label;}
}

mapper.xml

在查询条件中使用定义的枚举作为条件

    <!-- 获取权限和拥有权限的角色列表 --><select id="getRolePermsList" resultMap="PremRolesMap">SELECTt2.`code` role_code,t3.permFROM`sys_role_menu` t1INNER JOIN sys_role t2 ON t1.role_id = t2.idINNER JOIN sys_menu t3 ON t1.menu_id = t3.idWHEREtype = '${@com.youlai.system.common.enums.MenuTypeEnum@BUTTON.getValue()}'<if test="roleCode!=null and roleCode.trim() neq ''">AND t2.`code` = #{roleCode}</if></select>

开源项目

  • SpringCloud + Vue3 微服务商城
GithubGitee
后端youlai-mall 🍃youlai-mall 🍃
前端mall-admin🌺mall-admin 🌺
移动端mall-app 🍌mall-app 🍌
  • SpringBoot 3+ Vue3 单体权限管理系统
GithubGitee
后端youlai-boot 🍃youlai-boot 🍃
前端vue3-element-admin 🌺vue3-element-admin 🌺