【SpringBoot】开发基础篇
1:models层 (下面将从1 ~ end进行说明)
// 理解: 跟Django一样,都是对于数据库里每张表的设计
// 路径: java.com.example.Demo.models.User
// 定义设计表
@Data // 注解自动写构造器
@TableName("UserInfo")// 执行那张表
public class User {
private Integer id;
public String username;
public String password;
}
// 定义通用返回格式,返回给前端的JSON数据格式统一
@Data
public class returnJson {
private Integer code;
private Object data;
// 自定义构造函数 - 整理数据
public returnJson(Integer code,Object data){
this.code = code;
this.data = data;
};
}
2:Mapper层(DAO层)
// 理解:编写数据库命令,加上@Mapper注解后已经自动封装好数据库命令
// 路径: java.com.example.Demo.sql_dao.UserDao
@Mapper
public interface UserDao extends BaseMapper<User> {
}
3:Service层
// 理解:这层相当于视图层,也就是编写业务逻辑的地方,与Django不同的是,它区分在不同的文件夹当中,而Django希望全部写在一个接口里面,在调用数据库命令时也只能先调用Dao层的函数
// 路径: java.com.example.Demo.service.UserService
# 先定义一个继承IService的接口
public interface UserService extends IService<User> {
}
// 路径: java.com.example.Demo.service.impl.UserServerImpl
# 后创建一个对应的 ServiceImpl<Dao,模型>
@Service("UserDao")
public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserService {
}
4:Controller层
// 理解:接收请求接口(GET/POST)
// 路径:java.com.example.Demo.api.UserController
@RestController // JSON的封装
@RequestMapping(value = "/users") // 通用路由名
public class UserController {
@Autowired // 继承IService
private UserService userService;
// 查询所有用户信息 继承统一返回定义类 returnJson
@GetMapping
public returnJson getAll() {
return new returnJson(200,userService.list());
}

// 根据用户ID
@GetMapping(value = "/{id}")
public returnJson findUser(@PathVariable Integer id) {
return new returnJson(200,userService.getById(id));
}

// 分页查数据
@GetMapping(value = "?page={page}/size={size}")
public returnJson GetPageData(@PathVariable Integer page,@PathVariable Integer size) {
System.out.println("page :" + page);
System.out.println("size :" + size);
return new returnJson(200,userService.page(new Page(page,size), null));
}

// POST查询 模糊用户名 LambdaQueryWrapper
// 返回定义的returnJson类
// 接收的参数一定是modles层定义的数据表对象
@PostMapping(value = "/api/username")
public returnJson likeUsername(@RequestBody User user) {
System.out.println("user :" + user);
System.out.println("getUsername :" + user.getUsername());
LambdaQueryWrapper<User> obj = new LambdaQueryWrapper<>();
obj.like(true,User::getUsername, user.getUsername()); // 模糊查询
return new returnJson(200,userService.list(obj)); //定义类放入Service
}

// map 接收自定义接收参数
@PostMapping(value = "/api/map")
public returnJson likeUsername(@RequestBody Map map) {
System.out.println("username :" + map.get("user")); // 自定义接收KEY
System.out.println("test :" + map.get("test")); // 自定义接收KEY
LambdaQueryWrapper<User> obj = new LambdaQueryWrapper<>();
obj.like(true,User::getUsername, map.get("user")); // map中获取到KEY的VALUE
return new returnJson(200,userService.list());
}

// 根据用户ID 自定义创建JSON数据并返回
@GetMapping("/json")
public Map<String, Object> getMap() {
Map<String, Object> map = new HashMap<>();
map.put("code", 200);
map.put("message", "请求成功");
return map;
}
}
Python全栈(后端、数据分析、脚本、爬虫、EXE客户端) / 前端(WEB,移动,H5) / Linux / SpringBoot / 机器学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现