Skip to content

视图(Mapper)

Mapper 是 MyBatis 的数据访问层接口,用于与数据库进行交互,遵循 MyBatis Plus 的书写规范

文件位置

目录原则

保持与 Entity 层的目录结构一致,这样调用时方便查找

接口定义规范

继承关系

Mapper 接口有两种继承方式:

  1. MPJBaseMapper:来自 mybatisplusjoin,支持连表查询功能

  2. BaseMapper:来自 MyBatis Plus,提供基础的 CRUD 功能

项目中大部分 Mapper 都继承自 MPJBaseMapper,便于后期进行复杂的连表查询操作

命名规范

  • Mapper 接口命名:{实体类名称}Mapper

  • 包路径:com.niu.core.mapper.{功能模块}

注解使用

@Mapper

用于标记接口为 MyBatis 的 Mapper 接口,系统启动时会自动扫描并注入 Spring 容器

java
@Mapper
public interface SysUserMapper extends MPJBaseMapper<SysUser> {
}

Mapper 实现实例

继承 MPJBaseMapper 的 Mapper

java
package com.niu.core.mapper.sys;

import com.github.yulichang.base.MPJBaseMapper;
import com.niu.core.entity.sys.SysUser;
import org.apache.ibatis.annotations.Mapper;

/**
 * 后台管理员 Mapper
 */
@Mapper
public interface SysUserMapper extends MPJBaseMapper<SysUser> {
}

继承 BaseMapper 的 Mapper

java
package com.niu.core.mapper.sys;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.niu.core.entity.sys.SysBackupRecords;
import org.apache.ibatis.annotations.Mapper;

/**
 * 备份记录 Mapper
 */
@Mapper
public interface SysBackupRecordsMapper extends BaseMapper<SysBackupRecords> {
}

商品相关 Mapper

java
package com.niu.core.mapper.shop;

import com.github.yulichang.base.MPJBaseMapper;
import com.niu.core.entity.shop.MallGoods;
import org.apache.ibatis.annotations.Mapper;

/**
 * 商品表 Mapper
 */
@Mapper
public interface MallGoodsMapper extends MPJBaseMapper<MallGoods> {
}

调用方式

Mapper 接口在 Service 层通过 @Resource@Autowired 注解进行注入使用:

java
@Service
public class SysUserServiceImpl implements ISysUserService {

    @Resource
    private SysUserMapper sysUserMapper;
    
    @Override
    public SysUser getById(Integer id) {
        return sysUserMapper.selectById(id);
    }
    
    // 其他方法...
}

基于 MIT 协议发布