DAY26.2 Java核心基础
MybatisPlus提供的基本接口方法
分页查询
导入依赖springboot整合Mybatis-plus
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
创建Page对象,通过usermapper里面的selectPage查询
@Test
public void test4(){
Page<User> userPage = userMapper.selectPage(new Page<>(0, 10), null);
System.out.println(userPage.getRecords());
System.out.println(userPage.getCurrent());
System.out.println(userPage.getPages());
System.out.println(userPage.getSize());
}
测试输出:
可以看见它并没有分页查询,而是把表中所有的数据查询出来了
为什么呢?
因为我们没有配置分页配置类
MybatisPlusConfig配置分页
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 添加分页插件
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}
我们再次查询
可以看见实现了分页查询,只查询了10个数据
增删改查常用的接口方法
查询
@Test
public void test6(){
// 查询所有
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getId, 1);
List<User> users1 = userMapper.selectList(queryWrapper);
System.out.println(users1);
// 批量查询
List<User> users2 = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));
System.out.println(users2);
// 查询数量
System.out.println(userMapper.selectCount(null));
HashMap<String, Object> stringObjectHashMap = new HashMap<>();
stringObjectHashMap.put("id", 1);
System.out.println(userMapper.selectByMap(stringObjectHashMap));
// 查询单个数据
User user = userMapper.selectOne(queryWrapper);
}
增加
@Test
public void test7(){
User user = new User();
user.setName("张三");
user.setRole("admin");
user.setAge(18);
user.setEmail("111@qq.com");
user.setPwd("123456");
int insert = userMapper.insert(user);
System.out.println(insert);
}
更新
@Test
public void test8() {
//修改
User user = new User();
user.setId(1);
user.setName("张三");
user.setRole("admin");
user.setAge(18);
user.setEmail("111@qq.com");
user.setPwd("123456");
// 根据id更新
int update = userMapper.updateById(user);
System.out.println(update);
// 根据条件更新(wrapper)
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getName, "张三");
System.out.println(userMapper.update(user, queryWrapper));
}
删除
@Test
public void test9() {
// 根据id删除
int delete = userMapper.deleteById(1);
System.out.println(delete);
// 根据条件删除(wrapper)
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getName, "张三");
int delete1 = userMapper.delete(queryWrapper);
// 批量删除
userMapper.deleteBatchIds(Arrays.asList(1, 2, 3));
// 根据map键值对删除
HashMap<String, Object> stringObjectHashMap = new HashMap<>();
stringObjectHashMap.put("id", 1);
stringObjectHashMap.put("name", "张三");
userMapper.deleteByMap(stringObjectHashMap);
}
自定义 SQL
UserMapper
public interface UserMapper extends BaseMapper<User> {
@Select("select * from user where name = #{name}")
User queryByName(String name);
}
@Test
public void test10() {
User user = userMapper.queryByName("张三");
System.out.println(user);
}