Mybatis-plus常見用法

數據庫表結構

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(32) NOT NULL COMMENT '用戶名稱',
  `birthday` datetime DEFAULT NULL COMMENT '生日',
  `sex` char(1) DEFAULT NULL COMMENT '性別',
  `address` varchar(256) DEFAULT NULL COMMENT '地址',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;

在這裏插入圖片描述

枚舉類型

實體類中聲明枚舉類型

springweb接受枚舉類型配置

  1. 定義枚舉類,採用繼承IEnum實現

註解方式請看Mybatis-plus官方文檔

@AllArgsConstructor
public enum SexEnum implements IEnum<String> {
    BOY("1", "男"),
    GIRY("2", "女");

    private String value;
    private String desc;

    @Override
    public String getValue() {
        return this.value;
    }
}
  1. 全局配置枚舉類型轉換
server:
  port: 8081
spring:
  application:
    name: sky-user
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/shiro?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf-8&useSSL=true
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    hikari:
      minimum-idle: 5
      maximum-pool-size: 20
      connection-test-query: SELECT 1
mybatis-plus:
  type-enums-package: com.sky.sd.user.bean.enums
  1. 測試
@SpringBootTest
@RunWith(SpringRunner.class)
@Slf4j
public class TestCase {

    @Autowired
    private UserDao userDao;

    @Test
    public void test() {
        User user = userDao.selectById(1);
        log.info("用戶數據爲:{}", user);
    }
}

查詢結果
在這裏插入圖片描述

序列化枚舉值爲數據庫存儲值

  1. 增加如下配置
@Configuration
public class ConsumWebMvcConfig implements WebMvcConfigurer {
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer customizer(){
        return builder -> builder.featuresToEnable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
    }
}

在這裏插入圖片描述

SpringMVC接受枚舉類型和返回枚舉類型轉換

具體請看Spring接收枚舉類型

邏輯刪除

邏輯刪除

  1. 在實體類刪除字段上增加@TableLogic註解
   @TableLogic
   @ApiModelProperty(value = "是否刪除,0:未刪除,1:刪除")
   private Integer isDel;
  1. 在配置文件中增加如下配置
mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: isDel#全局邏輯刪除字段值 3.3.0開始支持,詳情看下面。
      logic-delete-value: 1 # 邏輯已刪除值(默認爲 1)
      logic-not-delete-value: 0 # 邏輯未刪除值(默認爲 0)

查詢中排除刪除字段

自動填充

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章