数据库表结构
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)