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 {@Beanpublic 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);
}