SpringBoot整合MybatisPlus3.X之逻辑删除(三)

  • pom.xml

    <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.2.0</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <scope>runtime</scope>
            </dependency><!-- for testing -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>

     

  • application.yml

    # DataSource Config
    spring:
      datasource:
        driver-class-name: org.h2.Driver
        url: jdbc:h2:tcp://192.168.180.115:19200/~/mem/test
        username: root
        password: test
    ​
    # Logger Config
    logging:
      level:
        com.mp.logicdelete: debug
    mybatis-plus:
      # 扫描 mapper.xml
      mapper-locations: classpath:/mapper/*Mapper.xml
      global-config:
        banner: false
        db-config:
          logic-delete-value: 1 #默认值1
          logic-not-delete-value: 0 #默认值0

     

  • 启动类

    @SpringBootApplication
    @MapperScan("com.mq.logicdelete.mapper")
    public class LogicdeleteApplication {
    ​
        public static void main(String[] args) {
            SpringApplication.run(LogicdeleteApplication.class, args);
        }
    ​
    }
    ​

     

  • 实体类

    @Data
    public class User {
        private Integer id;
        private String name;
        private Integer age;
        private String email;
        @TableLogic
        private Integer isDelete;
    }
     
  • dao层

    public interface UserMapper extends BaseMapper<User> {
    ​
    }
    ​

     

  • 数据库脚本

    DELETE FROM user;
    ​
    INSERT INTO user (id, name, age, email) VALUES
    (1, 'Jone', 18, 'test1@baomidou.com'),
    (2, 'Jack', 20, 'test2@baomidou.com'),
    (3, 'Tom', 28, 'test3@baomidou.com'),
    (4, 'Sandy', 21, 'test4@baomidou.com'),
    (5, 'Billie', 24, 'test5@baomidou.com');
    ​
    DROP TABLE IF EXISTS user;
    ​
    CREATE TABLE user
    (
        id BIGINT(20) NOT NULL COMMENT '主键ID',
        name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
        age INT(11) NULL DEFAULT NULL COMMENT '年龄',
        email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
        is_delete INT(11) NOT NULL DEFAULT 0 COMMENT '是否删除',
        PRIMARY KEY (id)
    );

     

  • 测试类

    @RunWith(SpringRunner.class)
    @SpringBootTest
    class LogicdeleteApplicationTests {
    ​
        @Resource
        private UserMapper userMapper;
    ​
        @Test
        public void testLogicDeleteById() {
            userMapper.deleteById(1);
        }
    ​
        @Test
        public void testLogicDeleteBatchIds() {
            userMapper.deleteBatchIds(Arrays.asList(1, 2, 3));
        }
    ​
        @Test
        public void testLogicDelete() {
            userMapper.delete(new QueryWrapper<User>().eq("age", 2));
        }
    ​
    }

     

  • 测试结果,运行部分测试代码(其实底层的是update语句)

posted @ 2019-10-29 15:19  天宇轩-王  阅读(1991)  评论(0编辑  收藏  举报