- model(最底层)
直接连接数据库,可以直接在代码中对数据库进行建表、字段等
@Entity
//代替get,set方法,写了@Data之后就不用get,set
@Data
public class User {
@Id//主键
@GeneratedValue(strategy= GenerationType.AUTO)//id自增
public Integer id;
public String username;
public String password;
public String openid;
}
- repository(model的上一层)
在上面的层中调用关于数据库的方法都需要在这里提前进行定义,如这里要按照openID进行查找则需要在这里先定义一个findByOpenid
//User为表名
public interface UserRepo extends JpaRepository<User,Integer> {
User findByOpenid(String opid);
}
- service层(倒数第二层)
主要用于当某种方法要实现很多次时,进行一种包装?反正就是,把相同的代码集合到一起,便于调用查看等。(目前还未接触) - controller(最上层)
用于各个方法的实现?比如网页返回了数值,直接在这个地方进行调用其它层的方法等进行增删改查,然后再返回给网页数据。
@RestController
public class TestController {
@Autowired
private UserRepo userRepo;
/**
* 1.接收到前端传递回的openid ,
* 2.根据openid查询数据库表,看该id是否登录
* 3.如已登录,则返回已登录状态
* 4.如未登录,且该openid查不到,创建一行该openid的记录,并通知前端,该openid用户
* 为第一次登录,需要进行用户注册,(填报个人信息之后,需要信息产业中心对后端权限进行相应的设置)
* 5.如已登录,则返回已登录信息
* @param userDto
* @return simpleresponse code 0对应3 1对4 2对应5 body msg 已登录 未登录 新用户
*/
@PostMapping("/smapplogin")///这里是网页的地址,post是指从前端返回数据,get是指从服务器把东西给前端*********
public SimpleResponse testSmAppLogin(@RequestBody UserDto userDto){ ///***
System.out.println("&&&&&&&&&&&&&&&&&="+userDto.openid);//调取前端post来的数据
userDto.openid = "123456";
/**
* 操作数据库 c
*/
User user = new User();
user.username="123";
user.password="456";
userRepo.save(user);
// User theOne = userRepo.findByOpenid("fdsafds");
// theOne.status;
// if(status == ""){
// return
// }else{
// return
// }
//创建返回的数据,回复给前端
SimpleResponse simpleResponse = new SimpleResponse();//SimpleResponse是指返回给前端的字段的定义(在dto中定义了)
simpleResponse.body=userRepo.findAll();///******
simpleResponse.code="200";
simpleResponse.msg="请求成功";
return simpleResponse;
}
@GetMapping("/hello/{id}")
public String test(@RequestParam("id") String id){
// id
return "return";
}
}
- dto(定义给前端的数据的字段)
如UserDto把前端返回的字段进行定义
@Data
public class UserDto {
public String openid;
public String msg;
}
SimpleResponse是指是指返回给前端的字段的定义,比如传送给前端三个字段
@Data
public class SimpleResponse {
public String code;
public Object body;//什么东西都可以往里面装
public String msg;
}