• 查询和删除


    批量查询
     @Test
        public void testSelectByBatch() {   //批量查询
            List<User> users = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));
            users.forEach(System.out::println);
        }

    按条件查询之一 使用map操作,按两个字段查询,可以看到自动为我们拼接了sql查询语句
    @Test
        public void testSelectByBatchIds() {
            HashMap<String, Object> map = new HashMap<>();
            map.put("name", "龙师傅");
            map.put("age", 25);
            List<User> userList = userMapper.selectByMap(map);
            userList.forEach(System.out::println);
        }

    分页查询

    1、配置分页插件

    public class MybatisPlusConfig {
    
        @Bean
        public MybatisPlusInterceptor mybatisPlusInterceptor() {
            MybatisPlusInterceptor interceptor=new MybatisPlusInterceptor();
    
            //注册乐观锁插件
            interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
    
            //分页插件
            interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
            return interceptor;
        }
    
        //使用分页插件时,设置为false, --> setUseGeneratedShortKey(false)
        @Bean
        public ConfigurationCustomizer configurationCustomizer() {
            return configuration -> configuration.setUseGeneratedShortKey(false);
        }
    }

     2、测试,直接使用 page 对象

     //测试分页查询
        @Test
        public void testPage() {
            Page<User> userPage = new Page<>(3, 3);
            userMapper.selectPage(userPage, null);
            userPage.getRecords().forEach(System.out::println);
        }

    删除

    物理删除:从数据库中直接删除

    逻辑删除:在数据库中没有删除,而是通过一个变量来让它失效! deleted=0 ->deleted=1

    基本删除

     //删除
    
        @Test
        public void TestDeleteById() {
            userMapper.deleteById(1367843260306825217L);
        }
    
        //通过ID批量删除
        @Test
        public void testDeleteByIds() {
            userMapper.deleteBatchIds(Arrays.asList(1367833264080838657L, 1367843450782863363L));
        }
    
        //通过map删除
        @Test
        public void testDeleteMap() {
            HashMap<String, Object> map = new HashMap<>();
            map.put("name", "龙师傅");
            userMapper.deleteByMap(map);
        }

    逻辑删除:

    1、数据库添加字段 deleted

    2、实体类添加字段和注解

     3、配置

    步骤1、在application.yml中配置

    mybatis-plus:
      global-config:
        db-config:
          logic-delete-field: flag  # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
          logic-delete-value: 1 # 逻辑已删除值(默认为 1)
          logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

    步骤2: 实体类字段上加上@TableLogic注解

     @TableLogic

    private Integer deleted;

    4、测试,可以看到,它虽然执行的是删除操作,但背后却是更新 deleted,数据还在数据库中,这就是逻辑删除

    mybatis-plus:
      global-config:
        db-config:
          logic-delete-field: flag  # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
          logic-delete-value: 1 # 逻辑已删除值(默认为 1)
          logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
  • 相关阅读:
    kuangbin专题 专题二 搜索进阶 Escape HDU
    kuangbin专题 专题二 搜索进阶 哈密顿绕行世界问题 HDU
    kuangbin专题 专题一 简单搜索 Find a way HDU
    kuangbin专题 专题一 简单搜索 非常可乐 HDU
    kuangbin专题 专题一 简单搜索 Oil Deposits HDU
    kuangbin专题 专题一 简单搜索 迷宫问题 POJ
    Java FileWriter类
    如何将多行中的文本连接成SQL服务器中的单个文本字符串String?
    fread (File input/output) – C 中文开发手册
    ASP.NET Table 控件
  • 原文地址:https://www.cnblogs.com/dragon-lan/p/14491616.html
Copyright © 2020-2023  润新知