zoukankan      html  css  js  c++  java
  • 查询和删除

    批量查询
     @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)
  • 相关阅读:
    CF1095F Make It Connected
    【ZJOI2016】旅行者
    [COCI 2009] OTOCI / 极地旅行社
    Sum in the tree
    MST Unification
    【集训队作业2018】Simple Tree
    [COCI2009]Dvapravca
    python 网络编程-02 多进程的交互案例
    python 日志模块logging
    python 网络编程-01基础
  • 原文地址:https://www.cnblogs.com/dragon-lan/p/14491616.html
Copyright © 2011-2022 走看看