一、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的分页即逻辑分页,通过分页插件的配置即可达到物理分页效果。
结构+原理
wapper介绍 :
- Wrapper : 条件构造抽象类,最顶端父类
- AbstractWrapper : 生成 sql 的 where 条件
- AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
- LambdaQueryWrapper :Lambda语法使用的查询Wrapper
- LambdaUpdateWrapper : Lambda 更新封装Wrapper
- QueryWrapper : Entity 对象封装操作类,不是用lambda语法
- UpdateWrapper : Update 条件封装,用于Entity对象更新操作
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。