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">
        SELECT
            t2.`code` role_code,
            t3.perm
        FROM
            `sys_role_menu` t1
                INNER JOIN sys_role t2 ON t1.role_id = t2.id
                INNER JOIN sys_menu t3 ON t1.menu_id = t3.id
        WHERE
            type = '${@[email protected]()}'
            <if test="roleCode!=null and roleCode.trim() neq ''">
                AND t2.`code` = #{roleCode}
            if>
    select>

开源项目

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

你可能感兴趣的:(#,Mybatis,mybatis,java)