【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;
    }


}
复制代码

 

posted @   PythonNew_Mr.Wang  Views(65)  Comments(0Edit  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示