不灭的焱

革命尚未成功,同志仍须努力 下载Java21

作者:AlbertWen  添加时间:2023-11-17 17:23:50  修改时间:2026-03-15 22:07:17  分类:07.Java框架/系统  编辑
  1. Spring Boot 2.7.x 集成 MyBatis-Flex 和 MyBatis 分页插件 pagehelper
  2. MyBatis-Flex 多表查询(关联查询)
  3. MyBatis-Flex 分页查询

联表分页查询:

#(1)BaseUserServiceImpl.java文件:

@Override
public Page<UserPO> getUserPageList(UserAdminForm userAdminForm, Page<UserPO> page) {
    if (ObjectUtil.isEmpty(userAdminForm)) {
        return EmptyHelper.emptyPage();
    }

    QueryChain<BaseUser> queryChain = this.queryChain().select(
            BaseUserTableDef.BASE_USER.ID,
            BaseUserTableDef.BASE_USER.ACCOUNT,
            BaseUserTableDef.BASE_USER.USER_NAME,
            BaseUserExtTableDef.BASE_USER_EXT.ROLE_NAMES
        ).leftJoin(BaseUserExtTableDef.BASE_USER_EXT)
        .on(BaseUserExtTableDef.BASE_USER_EXT.USER_ID.eq(BaseUserTableDef.BASE_USER.ID))
        .orderBy(BaseUserTableDef.BASE_USER.ID, false);

    if (StrUtil.isNotEmpty(userAdminForm.getAccount())) {
        queryChain.like(BaseUser::getAccount, userAdminForm.getAccount());
    }
    if (StrUtil.isNotEmpty(userAdminForm.getUserName())) {
        queryChain.like(BaseUser::getUserName, userAdminForm.getUserName());
    }

    return queryChain.pageAs(page, UserPO.class);
}

#(2)UserPO.java 文件:

/**
 * 用户合并 模型
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class UserPO extends BaseUser {
    private String roleNames;
}

#(3)BaseUser.java文件:

package com.fuyo.application.baseadmin.entity;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;
import java.sql.Timestamp;

/**
 * 用户表 实体类。
 *
 * @author AlbertWen
 * @since 2025-06-02
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("base_user")
public class BaseUser implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 自增ID
     */
    @Id(keyType = KeyType.Auto)
    private Integer id;

    /**
     * 登录账号
     */
    private String account;

    /**
     * 用户名
     */
    private String userName;

    /**
     * 登录密码
     */
    private String password;

    /**
     * 随机加密盐
     */
    private String salt;

    /**
     * 超级管理员状态,1-是,2-否
     */
    private Integer superadminStatus;

    /**
     * 有效状态,1-有效,2-无效
     */
    private Integer validStatus;

    /**
     * 删除状态,1-正常,2-已删除
     */
    private Integer delStatus;

    /**
     * 创建人
     */
    private Integer createUserId;

    /**
     * 更新人
     */
    private Integer updateUserId;

    /**
     * 创建时间
     */
    private Timestamp createTime;

    /**
     * 更新时间
     */
    private Timestamp updateTime;

}