MP学习小结

mybatis-plus 心得小结

  • 学习mybatis-plus,首先我们要明确我们的mybatis的基础是要有的,其次我们学习mybatis-plus(MP)是一个在mybatis框架上只做增强,不做改变的框架,也就是说原先的mybatis所用到技术都得到了保留,我们可以照常使用。就这一点,就让MP备受人们的欢迎。
  • MP主要核心就是,它比mybatis多了CURD的封装,这极大地简化开发人员的开发,提高了开发效率。
  • 其主要功能有以下几点:

1.BaseMapper集成单表crud功能

假如有一个实体类User,要使用mybatis实现增删改查需要写很多的xml配置文件来实现,但是用mybatis-plus之后直接继承BaseMapper接口即可实现,无需编写任何的xml文件,代码如下:

public interface UserMapper extends BaseMapper<User>{
 }//继承之后即可直接使用BaseMapper中的增删改查方法,例如
 
userMapper.selectById(id); userMapper.deleteById(id);
userMapper.updateById(user); userMapper.insert(user);

2.集成分页功能
mybatisplus集成了很好用的分页功能,在执行sql查询的时候,传入一个pagination的对象即可实现自动分页.

  • 往容器中加入分页拦截器,设置分页的相关操作
@Bean
	public PaginationInterceptor paginationInterceptor() {
		PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
		// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
		// paginationInterceptor.setOverflow(false);
		// 设置最大单页限制数量,默认 500 条,-1 不受限制
		// paginationInterceptor.setLimit(500);
		// 开启 count 的 join 优化,只针对部分 left join
		paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
		return paginationInterceptor;
	}
  • 在Mapper层的方法传入page对象就可以进行分页操作
public interface UserMapper {//可以继承或者不继承BaseMapper
    /**
     * <p>
     * 查询 : 根据state状态查询用户列表,分页显示
     * </p>
     *
     * @param page 分页对象,xml中可以从里面进行取值,传递参数 Page 即自动分页,必须放在第一位(你可以继承Page实现自己的分页对象)
     * @param state 状态
     * @return 分页对象
     */
    IPage<User> selectPageVo(Page<?> page, Integer state);
}

3.条件构造器实现复杂的sql查询

    ~~~     这个功能主要用户实现动态的sql拼接,主要用到的对象是EntityWrapper,通过生成一个EntityWrapper对象,然后通过该wrapper对象的方法实现sql的拼接。
    ~~~     例如可以wrapper的eq方法实现sql中的=功能,like方法实现sql中的like功能,gt方法实现sql的>的功能
比如:

        //修改一个user的名字的值
        User user = new User();
        user.setName("弟弟");
        //修改条件s
        UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();
        userUpdateWrapper.eq("name", "djh");
        int update = mapper.update(user, userUpdateWrapper);
 /**
     * 打印结果
     * ==>  Preparing: UPDATE user SET name=? WHERE name = ?
     * ==> Parameters: 弟弟(String), djh(String)
     * <==    Updates: 10
     * Closing non transactional SqlSession 
  • 我们学习一门新技能,不能架空去学习,要多去实践练习才能达到熟能生巧的地步。
  • 我们学习一门新技术,最好的的方式就是官网看一下官方文档,这是我们技术入门的最好方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值