mybatisplus实现属性的自动填充
pojo
在需要自动填充的属性上面加上注解@TableField
注解的属性标识在添加或者修改的时候进行自动填充,自动填充两个时间
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
private Integer version;
private Integer deleted;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}
实现MetaObjectHandler接口
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
//使用mp实现添加操作
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}
//使用mp实现修改操作
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}
测试
@Test
void testAddUser() {
User user=new User();
user.setName("mary");
user.setAge(34);
user.setEmail("mary@qq.com");
int re = userMapper.insert(user);
System.out.println(re);
}
添加的结果
User(
id=1594972935875346434,
name=mary,
age=30,
email=mary@qq.com,
version=null,
deleted=0,
createTime=Tue Nov 22 16:35:56 CST 2022,
updateTime=Tue Nov 22 16:40:19 CST 2022)
mybatisplus实现分页查询
配置类
@Configuration //声明配置类
@MapperScan("com.example.test01.mapper") //扫描mapper
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor (){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
//分页插件
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}
mapper
UserMapper
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
service
UserService
public interface UserService extends IService<User>{
}
serviceImpl
UserServiceImpl
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
Controller
UserController
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/page")
public Page<User> userPage(){
Page<User> page=new Page<>(2,2);
userService.page(page, null);
return page;
}
}
返回json:
{
"records": [
{
"id": 3,
"name": "Wiggins",
"age": 22,
"email": "Wiggins@qq.com",
"version": null,
"deleted": 0,
"createTime": null,
"updateTime": null
},
{
"id": 4,
"name": "Green",
"age": 23,
"email": "Green@qq.com",
"version": null,
"deleted": 0,
"createTime": null,
"updateTime": null
}
],
"total": 10,
"size": 2,
"current": 2,
"orders": [],
"optimizeCountSql": true,
"searchCount": true,
"countId": null,
"maxLimit": null,
"pages": 5
}
配置swagger
引入依赖:
pom.xml
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
配置类:
SwaggerConfig
@Configuration
@EnableSwagger2 //开启swagger
@EnableWebMvc
public class SwaggerConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
WebMvcConfigurer.super.addResourceHandlers(registry);
}
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
}
private ApiInfo apiInfo(){
Contact contact=new Contact("lihuawei","https://blog.csdn.net/m0_58121644","3476511424@qq.com");
return new ApiInfo(
"API的测试",
"后端接口的测试",
"1.0.0",
"111",
contact,
"",
"",
new ArrayList<>());
}
}
访问:
http://localhost:8081/swagger-ui.html