简单数据封装
1.介绍
1.1数据封装的基本原则包括:
- 将数据和操作封装在一个类中:将相关的数据和操作封装在一个类中,形成一个独立的实体。这样可以提高代码的可维护性和可复用性。
- 使用访问修饰符控制访问权限:通过使用访问修饰符(如public、private、protected)来控制对数据的访问权限。一般来说,应该将数据设置为私有(private),只允许通过类的公共接口进行访问和操作。
- 提供公共接口:通过定义公共方法来提供对数据的访问和操作。这样可以控制对数据的访问方式,避免直接操作数据,从而保证数据的一致性和安全性。
- 封装数据的具体实现细节:封装数据的具体实现细节,使外部代码无法直接访问和修改数据的内部表示方式。这样可以提高代码的灵活性和可扩展性。
1.2数据封装的好处包括:
- 提高代码的可维护性和可复用性:通过将数据和操作封装在一起,可以提高代码的可维护性和可复用性。当需要修改数据的实现方式时,只需要修改类的内部实现,而不需要修改外部代码。
- 提高代码的安全性:通过将数据设置为私有(private),只允许通过类的公共接口进行访问和操作,可以提高代码的安全性。外部代码无法直接访问和修改数据,只能通过类的公共接口进行操作。
- 隐藏数据的具体实现细节:通过封装数据的具体实现细节,可以隐藏数据的具体实现方式,使外部代码无法直接访问和修改数据的内部表示方式。这样可以提高代码的灵活性和可扩展性。
2.创建一个Result类用于封装返回数据
import lombok.Data;
@Data
public class Result {
private int code;
private String msg;
private Long total;
private Object data;
public static Result result(int code,String msg, Long total, Object data){
Result res = new Result();
res.setCode(code);
res.setMsg(msg);
res.setTotal(total);
res.setData(data);
return res;
}
public static Result fail(){
return result(400,"失败",0L,null);
}
public static Result suc(){
return result(200,"成功",0L,null);
}
public static Result suc(Object data){
return result(200,"成功",0L,data);
}
public static Result suc(Object data,Long total){
return result(200,"成功",total,data);
}
}
3.对封装类的使用
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cqgcxy.common.Result;
import com.cqgcxy.pojo.PageParam;
import com.cqgcxy.pojo.User;
import com.cqgcxy.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("ResultlistPage")
public Result ResultlistPage(@RequestBody PageParam query){
HashMap param = query.getParam();
String name= (String)param.get("username");
Page<User> page = new Page();
page.setCurrent(query.getPageNum());
page.setSize(query.getPageSize());
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.like(User::getUsername,name);
IPage result = userService.page(page,lambdaQueryWrapper);
return Result.suc(result.getRecords(),result.getTotal());
}
}
4.使用PostMan软件进行测试