package com.template; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class MybatisPlusApplicationTests { @Value("${my-security.privateKey}") String privateKey; @Value("${my-security.publicKey}") String publicKey; @Test void contextLoads() { // System.out.println(mySecurity.toString()); System.out.println("privateKey = " + privateKey); System.out.println("publicKey = " + publicKey); } // // 继承了BaseMapper,所有的方法都来自己父类 // // 我们也可以编写自己的扩展方法! // @Autowired // private PlaybackRecordMapper playbackRecordMapper; // // @Test // void contextLoads() { // // 参数是一个 Wrapper ,条件构造器,这里我们先不用 null // // 查询全部用户 // List playbackRecords = playbackRecordMapper.selectList(null); // playbackRecords.forEach(System.out::println); // } // // // 测试插入 // @Test // public void testInsert(){ // PlaybackRecord playbackRecord = new PlaybackRecord(); // playbackRecord.setUrl("www.baidu.com"); // playbackRecord.setSharerId("123456"); // playbackRecord.setShareeId("654321"); // // int result = playbackRecordMapper.insert(playbackRecord); // 帮我们自动生成id // System.out.println(result); // 受影响的行数 // System.out.println(playbackRecord); // 发现,id会自动回填 // } // // // 测试更新 // @Test // public void testUpdate(){ // PlaybackRecord playbackRecord = new PlaybackRecord(); // // 通过条件自动拼接动态sql // playbackRecord.setShareeId("123456"); // // 注意:updateById 但是参数是一个 对象! // int i = playbackRecordMapper.updateById(playbackRecord); // System.out.println(i); // } // // // 测试乐观锁成功! // @Test // public void testOptimisticLocker(){ // // 1、查询用户信息 // PlaybackRecord playbackRecord = playbackRecordMapper.selectById(1L); // // 2、修改用户信息 // playbackRecord.setShareeId("123456"); // // 3、执行更新操作 // playbackRecordMapper.updateById(playbackRecord); // } // // // // 测试乐观锁失败!多线程下 // @Test // public void testOptimisticLocker2(){ // // // 线程 1 // PlaybackRecord playbackRecord = playbackRecordMapper.selectById(1L); // playbackRecord.setShareeId("123456"); // // // 模拟另外一个线程执行了插队操作 // PlaybackRecord playbackRecord2 = playbackRecordMapper.selectById(1L); // playbackRecord.setShareeId("123456"); // playbackRecordMapper.updateById(playbackRecord2); // // // 自旋锁来多次尝试提交! // playbackRecordMapper.updateById(playbackRecord); // 如果没有乐观锁就会覆盖插队线程的值! // } // // // 测试查询 // @Test // public void testSelectById(){ // PlaybackRecord playbackRecord = playbackRecordMapper.selectById(1L); // System.out.println(playbackRecord); // } // // // 测试批量查询! // @Test // public void testSelectByBatchId(){ // List playbackRecords = playbackRecordMapper.selectBatchIds(Arrays.asList(1, 2, 3)); // playbackRecords.forEach(System.out::println); // } // // // 按条件查询之一使用map操作 // @Test // public void testSelectByBatchIds(){ // HashMap map = new HashMap<>(); // // 自定义要查询 // map.put("sharer_id","123456"); // // List playbackRecords = playbackRecordMapper.selectByMap(map); // playbackRecords.forEach(System.out::println); // } // // // 测试分页查询 // @Test // public void testPage(){ // // 参数一:当前页 // // 参数二:页面大小 // // 使用了分页插件之后,所有的分页操作也变得简单的! // Page page = new Page<>(2,5); // playbackRecordMapper.selectPage(page,null); // // page.getRecords().forEach(System.out::println); // System.out.println(page.getTotal()); // // } // // // // 测试删除 // @Test // public void testDeleteById(){ // playbackRecordMapper.deleteById(1L); // } // // // 通过id批量删除 // @Test // public void testDeleteBatchId(){ // playbackRecordMapper.deleteBatchIds(Arrays.asList(1240620674645544961L,1240620674645544962L)); // } // // // 通过map删除 // @Test // public void testDeleteMap(){ // HashMap map = new HashMap<>(); // map.put("name","123456"); // playbackRecordMapper.deleteByMap(map); // } }