您的位置:首页 > 其它

MP学习小结

2020-08-11 14:35 34 查看

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
  • 我们学习一门新技能,不能架空去学习,要多去实践练习才能达到熟能生巧的地步。
  • 我们学习一门新技术,最好的的方式就是官网看一下官方文档,这是我们技术入门的最好方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: