數據庫表結構
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;
枚舉類型
實體類中聲明枚舉類型
- 定義枚舉類,採用繼承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;
}
}
- 全局配置枚舉類型轉換
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
- 測試
@SpringBootTest
@RunWith(SpringRunner.class)
@Slf4j
public class TestCase {
@Autowired
private UserDao userDao;
@Test
public void test() {
User user = userDao.selectById(1);
log.info("用戶數據爲:{}", user);
}
}
查詢結果
序列化枚舉值爲數據庫存儲值
- 增加如下配置
@Configuration
public class ConsumWebMvcConfig implements WebMvcConfigurer {
@Bean
public Jackson2ObjectMapperBuilderCustomizer customizer(){
return builder -> builder.featuresToEnable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
}
}
SpringMVC接受枚舉類型和返回枚舉類型轉換
具體請看Spring接收枚舉類型
邏輯刪除
邏輯刪除
- 在實體類刪除字段上增加@TableLogic註解
@TableLogic
@ApiModelProperty(value = "是否刪除,0:未刪除,1:刪除")
private Integer isDel;
- 在配置文件中增加如下配置
mybatis-plus:
global-config:
db-config:
logic-delete-field: isDel#全局邏輯刪除字段值 3.3.0開始支持,詳情看下面。
logic-delete-value: 1 # 邏輯已刪除值(默認爲 1)
logic-not-delete-value: 0 # 邏輯未刪除值(默認爲 0)