1、任务要求:
上周老师布置了个作业,扫描数据库的所有数据,返回Json格式数据,我做了两个页面,一个是显示所有用户数据,一个通过传入参数,显示一个用户的数据,效果如下:
-
这是我数据库的数据:
-
用Json格式返回所有数据:
-
通过搜索ID,返回一个人的数据:
2、功能实现
- 想要返回Json格式数据,SpringBoot要用到一个注解:@ResponseBody
- 创建Model,数据库的映射类
public class User {
private Long id;
private String username;
private String password;
private String token;
补Getting/Setting
}
- 创建DTO(数据传输对象)
- Result,设置泛型为T,放进去什么类型就是什么类型
- msg:成功提示
- success:提示true
- code :200,表示成功
//通用类,用来存基础数据
public class Result<T> {
private String msg;
private boolean success;
private String code;
private T detail;
补Getting/Setting
}
3、 DAO层,数据库语句映射
- 查询所有数据
- 通过id查询指定数据
//遍历数据库所有数据,用List<User>承接
@Select("select * from user")
List<User> showAllData();
//通过ID,检索所有数据
@Select("select * from user where id = #{id}")
List<User> id_to_findByALlData(Long id);
- Service层,一个用来获取所有用户数据,一个用来获取一个用户数据
- 获取所有用户数据
@Service
public class UserAllJson {
@Autowired
private UserMapper userMapper;
public Result<List<User>> getAllJson(){
//用getData对象获取数据库所有用户数据
List<User> getData = userMapper.showAllData();
//新建一个result对象,把getData放进去
Result<List<User>> result = new Result();
result.setSuccess(true);
result.setMsg("获取成功");
result.setCode("200");
result.setDetail(getData);
return result;
}
}
- 获取一个用户数据,id作为参数传入,用于数据库查询
@Service
public class UserOneJson {
@Autowired
private UserMapper userMapper;
public Result<List<User>> showOneJson(Long id){
List<User> getOneJson = userMapper.id_to_findByALlData(id);
Result result = new Result();
result.setCode("200");
result.setMsg("成功");
result.setSuccess(true);
result.setDetail(getOneJson);
return result;
}
}
- Controller层,一个用来获取所有用户数据,一个用来获取一个用户数据
- 显示所有数据
// 用Json格式显示所有用户数据
@ResponseBody
@GetMapping("/showAllJson")
public Result<List<User>> toShowAllJson(){
Result<List<User>> result = userAllJson.getAllJson();
return result;
}
- 显示一个用户数据
// 用Json格式显示一个用户数据
@ResponseBody
@GetMapping("/showOneJson")
public Result<List<User>> toShowJson(@Param("id") Long id){
Result<List<User>> result = userOneJson.showOneJson(id);
return result;
}