代码基于 maven 管理和 mysql 数据库与 SpringBoot 框架
首先在根目录下创建 config 目录作为 SpringBoot 配置的目录,新建 class 类 MybatisPlusConfig,代码如下
@Configuration// 使其可以被发现
public class MybatisPlusConfig {
@Bean// 交给 spring 管理
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor=new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}
同理创建 controller 目录,新建类名为 EmployeeController,代码如下
/** | |
* 员工信息分页查询 | |
* @param page | |
* @param pageSize | |
* @param name | |
* @return | |
*/ | |
@GetMapping("/page") | |
public R<Page> page(int page,int pageSize,String name){ | |
// 构造分页构造器 | |
Page pageInfo=new Page(page,pageSize); | |
// 构造条件构造器 | |
LambdaQueryWrapper<Employee> queryWrapper=new LambdaQueryWrapper(); | |
// 添加过滤条件 | |
queryWrapper.like(StringUtils.isNotEmpty(name),Employee::getName,name); | |
// 添加排序条件 | |
queryWrapper.orderByDesc(Employee::getUpdateTime); | |
// 执行查询 | |
employeeService.page(pageInfo,queryWrapper); | |
return R.success(pageInfo); | |
} |
上述代码中 R
类型是响应前端的进一步封装类,基础类名为 Employee
其各自代码如下
R
/** | |
* 通用返回结果,服务端响应的数据最终都会封装成此对象 | |
* @param <T> | |
*/ | |
@Data | |
public class R<T> { | |
private Integer code; // 编码:1 成功,0 和其它数字为失败 | |
private String msg; // 错误信息 | |
private T data; // 数据 | |
private Map map = new HashMap(); // 动态数据 | |
public static <T> R<T> success(T object) { | |
R<T> r = new R<T>(); | |
r.data = object; | |
r.code = 1; | |
return r; | |
} | |
public static <T> R<T> error(String msg) { | |
R r = new R(); | |
r.msg = msg; | |
r.code = 0; | |
return r; | |
} | |
public R<T> add(String key, Object value) { | |
this.map.put(key, value); | |
return this; | |
} | |
} |
Employee
@Data// 基于 lombok | |
public class Employee implements Serializable { | |
private static final long serialVersionUID = 1L; | |
private Long id; | |
private String username; | |
private String name; | |
private String password; | |
private String phone; | |
private String sex; | |
private String idNumber; | |
private Integer status; | |
private LocalDateTime createTime; | |
private LocalDateTime updateTime; | |
@TableField(fill = FieldFill.INSERT) | |
private Long createUser; | |
@TableField(fill = FieldFill.INSERT_UPDATE) | |
private Long updateUser; | |
} |