MybatisPlus中的查询操作

本文详细介绍了MybatisPlus中的查询操作,包括根据Id查询、条件批量查询、使用Map自定义查询以及如何进行分页查询。在进行分页查询时,需要先注册分页插件,然后可以直接使用Page对象进行操作。

目录

根据Id查询

根据条件批量查询

使用map自定义查询

分页查询


 

根据Id查询

 

    @Test
    public void testSelectById(){
        User user = userMapper.selectById(1L);
        System.out.println(user);
    }

 

 

根据条件批量查询

 

    @Test
    public void testSelectByBatchId(){
        List<User> users = userMapper.selectBatchIds(Arrays.asList(1,2,3));
        users.forEach(System.out::println);
    }

 

 

使用map自定义查询

 


                
### MyBatisPlus 条件查询时出现空指针异常的原因分析 当使用 MyBatisPlus条件查询操作遇到 `NullPointerException` 时,通常是因为实体类中缺少默认的主键字段 `id` 或者其他配置不当所引起的[^1]。 对于这种情况,在构建查询条件前应确保: - 实体对象已经正确定义了 `@TableName` 注解来指定对应的数据库表名; - 如果使用的不是标准命名约定下的 `id` 字段作为主键,则需通过 `@TableId(type= IdType.AUTO)` 显式声明主键名称及其自增长策略; - 需要确认 Mapper 接口继承了 BaseMapper<T> 并且 T 是具体业务逻辑所需的 POJO 类型; - 查询参数不能为空或 null 值传递给 Wrapper 方法调用; 另外需要注意的是,如果是在 Spring Boot 环境下集成 MyBatis Plus 发生此类错误的话,可能是由于自动装配失败造成的 Bean 初始化问题所致[^2]。此时应该仔细检查项目依赖关系以及 application.yml 文件内的数据源设置是否正确无误。 针对上述情况可以采取如下措施预防并修复该类型的 bug: #### 修改实体类定义 ```java import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; // 正确标注对应的数据表名 @TableName("your_table_name") public class YourEntity { @TableId(value="custom_id", type= IdType.AUTO)// 自定义主键列名为 custom_id private Long id; // 即使这里命名为 id,也建议显式指定@TableId // getter setter... } ``` #### 调整服务层代码实现 ```java @Service public class UserServiceImpl implements IService<User> { @Autowired private UserMapper userMapper; public List<User> selectUsersByCondition(String name){ QueryWrapper<User> queryWrapper = new QueryWrapper<>(); if (name != null && !"".equals(name.trim())) { queryWrapper.like("username", name); } return this.userMapper.selectList(queryWrapper); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值