- Spring Boot 2.7.x 集成 MyBatis-Flex 和 MyBatis 分页插件 pagehelper
- MyBatis-Flex 多表查询(关联查询)
- 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;
}