首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【解决笔记】MyBatis-Plus 中无 selectList 方法

【解决笔记】MyBatis-Plus 中无 selectList 方法

作者头像
命运之光
发布2025-08-18 08:25:40
发布2025-08-18 08:25:40
26400
代码可运行
举报
运行总次数:0
代码可运行

MyBatis-Plus 中无 selectList 方法的解决笔记

核心前提

MyBatis-Plus 的 BaseMapper 接口内置了 selectList 等基础查询方法,继承该接口可直接使用,无需手动实现。

无 selectList 方法的两种情况及解决方式

1. 未继承 BaseMapper(推荐方案)

让 Mapper 接口继承 BaseMapper<T>(T 为实体类),即可直接获得 selectList 等基础方法:

代码语言:javascript
代码运行次数:0
运行
复制
// 示例:UserMapper 继承 BaseMapper<User>
public interface UserMapper extends BaseMapper<User> {
    // 无需手动定义 selectList,BaseMapper 已包含
}

// 使用方式
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "张三");
List<User> users = userMapper.selectList(wrapper); // 直接调用
2. 无法继承 BaseMapper(特殊场景,需自定义方法)
步骤1:在 Mapper 接口中定义方法
代码语言:javascript
代码运行次数:0
运行
复制
public interface UserMapper {
    // 自定义查询方法,参数为 LambdaQueryWrapper
    List<User> findUsers(LambdaQueryWrapper<User> wrapper);
}
步骤2:编写 SQL 实现(两种方式)

XML 映射文件方式

代码语言:javascript
代码运行次数:0
运行
复制
<!-- UserMapper.xml -->
<select id="findUsers" resultType="com.example.entity.User">
    SELECT * FROM user
    <!-- 引入 LambdaQueryWrapper 生成的条件片段 -->
    ${wrapper.getSqlSegment()}
</select>

注解方式

代码语言:javascript
代码运行次数:0
运行
复制
public interface UserMapper {
    @Select("SELECT * FROM user ${wrapper.getSqlSegment()}")
    List<User> findUsers(LambdaQueryWrapper<User> wrapper);
}
步骤3:调用自定义方法
代码语言:javascript
代码运行次数:0
运行
复制
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "张三");
List<User> users = userMapper.findUsers(wrapper); // 调用自定义方法

注意事项

  1. 优先选择继承 BaseMapper,这是 MyBatis-Plus 的核心特性,可大幅简化开发。
  2. 自定义方法时,通过 ${wrapper.getSqlSegment()} 引入查询条件,MyBatis-Plus 已对 SQL 注入做了防护。
  3. 若需灵活控制查询字段,可在 SQL 中指定具体列(如 SELECT id, name FROM user),避免查询冗余字段。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MyBatis-Plus 中无 selectList 方法的解决笔记
    • 核心前提
    • 无 selectList 方法的两种情况及解决方式
      • 1. 未继承 BaseMapper(推荐方案)
      • 2. 无法继承 BaseMapper(特殊场景,需自定义方法)
    • 注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档