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語句)


  • 免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM