SpringBoot中使用MybatisPlus

SpringBoot中使用MybatisPlus

导入MybatisPlus依赖

注意:引入 MyBatis-Plus 之后请不要再次引入 MyBatis,以避免因版本差异导致的问题。

            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.3.1</version>
            </dependency>

1.书写mapper接口继承BaseMapper

public interface UserMapper extends BaseMapper<User>
说明:其中泛型的具体类型为需要操作的表对应的实体类

MybatisPlus提供简单的CRUD无需书写XML文件,MybatisPlus也提供条件构造抽象类Wrapper,可不书写XML完成条件查询

建议:除了简单的CRUD都用XML写SQL语句,因为Wrapper拼出来的条件查询代码又臭又长

2.书写Service接口继承IService接口,泛型如上

public interface UserService extends IService<User>

3.书写service实现类继承MybatisPlus的ServiceImpl<M extends BaseMapper,T>并实现自定义的service接口

public class UserSetServiceImpl extends ServiceImpl<UserMapper, User> implements UserService
条件查询示例:serviceImpl方法实现
   //注入Mapper接口
    @Resource
    private UsertMapper userMapper;
    /**
     * 分页查询,条件:通过用户名和用户编号查,若无条件则查所有
     * @param queryVo User对象,有用户名真实姓名等属性
     * @param current 当前页数
     * @param size 当前页显示条数
     * @return MybatisPlus简单分页模型
     */
    @Override
    public Page<User> findPageListByConditon(UserQueryVo queryVo, Integer current, Integer size) {
        //Mybatis plus分页
        Page<User> pages = new Page<>(current,size);
        //查询
        Page<User> returnList = UserMapper.
                findPageListByConditon(pages,queryVo);
        return returnList;
    }
Controller方法实现
//具体参数传递方式根据需求调整
public Page<User> findPageListByConditon(@PathVariable Integer current,
                                         @PathVariable Integer limit,
                                         @RequestBody  UserQueryVo queryVo) {
        Page<User> returnList = UserService.findPageListByConditon(queryVo, current, limit);
        return returnList;

XML文件

<mapper namespace="UserMapper">
    <select id ="findPageListByConditon" resultType="User">
        select * from User
        <where>
            <if test="queryVo.username != null and queryVo.username != ''">
                and hosname = #{queryVo.hosname,jdbcType=VARCHAR}
            </if>
            <if test="queryVo.usercode != null and queryVo.usercode != ''">
                and hoscode = #{queryVo.hoscode,jdbcType=VARCHAR}
            </if>
        </where>
    </select>
</mapper>

若运行时控制台报OgnlException,参考

https://blog.csdn.net/southwind1/article/details/128980145?spm=1001.2014.3001.5501

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot项目使用Mybatis Plus实现分页查询,需要以下几个步骤: 1. 引入Mybatis Plus和Mybatis Plus分页插件的依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>3.4.0</version> </dependency> ``` 2. 在Mybatis Plus的配置文件配置分页插件: ```java @Configuration public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } } ``` 3. 在Mapper接口定义分页查询方法,并使用Mybatis Plus的分页参数对象Page: ```java public interface UserMapper extends BaseMapper<User> { IPage<User> selectPageVo(Page<?> page); } ``` 4. 在Service层调用分页查询方法: ```java @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Override public IPage<User> selectPageVo(Page<?> page) { return baseMapper.selectPageVo(page); } } ``` 5. 在Controller层接收前端传来的分页参数,调用Service层的分页查询方法,并将查询结果返回给前端: ```java @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/users") public IPage<User> selectPageVo(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize) { Page<User> page = new Page<>(pageNum, pageSize); return userService.selectPageVo(page); } } ``` 以上就是在Spring Boot项目使用Mybatis Plus实现分页查询的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值