一、mybatis-plus简介:

Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

二、springboot整合mybatis-plus:

pom.xml:

 <dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plus-boot-starter</artifactId>
 <version>3.4.0</version>
</dependency>
<dependency>
 <groupId>com.h2database</groupId>
 <artifactId>h2</artifactId>
 <scope>runtime</scope>
</dependency>

$\color{red}{PS:集成mybatis-plus要把mybatis、mybatis-spring去掉,避免冲突}$
mapper

public interface UserMapper extends BaseMapper<User> {
}

test

//批量查询测试~~~~
@Test
public void mybatisPlusTest() {
 List<User> users = userMapper.selectList(null);
 //Assert.assertEquals(5,users.size());
 System.out.println(users);
}



@Test
public void mybatisPlusTest() {
 User user = new User();
 user.setName("东方不败");
 user.setEmail("dfbb@163.com");
 user.setId(1000L);
 user.setAge(20);
 System.out.println(userMapper.insert(user));//响应结果1,成功
}


@Test
public void mybatisPlusTest() {
 User user = new User();
 user.setName("东方不败");
 user.setId(1000L);
 user.setAge(2000);
 System.out.println(userMapper.updateById(user));//响应结果1,成功
}

@Test
public void mybatisPlusTest() {
 User user = new User();
 QueryWrapper<User> queryWrapper = new QueryWrapper<User>(user);
 //QueryWrapper<User> queryWrapper = new QueryWrapper<User>(user,"id","email");
 //queryWrapper.eq("id",1000); //queryWrapper.eq("name","东方不败");
 //queryWrapper.select("name","age").eq("id",1000); //queryWrapper.select(User.class,info->!info.getColumn().equals("name") && !info.getColumn().equals("age")).eq("id",1000); IPage<User> userPage = new Page<User>(1, 2);
 userPage = userMapper.selectPage(userPage, null);
 List<User> users = userPage.getRecords();
 System.out.println(users);
}
#

分页:并没有真正的物理分页,而是通过缓存来获得全部数据中再进行的分页(数据量大的时候会造成内存溢出);默认采用的分页为RowBounds的分页即逻辑分页,通过分页插件的配置即可达到物理分页效果。
结构+原理
image.png
wapper介绍 :

  • Wrapper : 条件构造抽象类,最顶端父类
  • AbstractWrapper : 生成 sql 的 where 条件
  • AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
  • LambdaQueryWrapper :Lambda语法使用的查询Wrapper
  • LambdaUpdateWrapper : Lambda 更新封装Wrapper
  • QueryWrapper : Entity 对象封装操作类,不是用lambda语法
  • UpdateWrapper : Update 条件封装,用于Entity对象更新操作

image.png


撸猫鼠
10 声望1 粉丝

引用和评论

0 条评论