1.SpringMVC参数传递
- controller定义查询方法,
- 调用service层方法实现,
- service实现层调用Mapper层方法,持久层MabatisPlus调用基本方法查询。
1.1需求说明
根据id查询用户信息??? http://localhost:8080/findUserById?id=1
编写controller和ServiceImpl
@GetMapping("findUserById") //get参数
public User findUserById(Integer id){
return userServicel.findUserById(id);
}
@Override
public User findUserById(Integer id) {
return userMapper.selectById(id);
}
1.2 对象参数接收
案例: 根据name=“王昭君” sex=女 查询用户数据? URL: http://localhost:8080/findUserByNS?name=王昭君&sex=女
url默认没传入的属性指定为null,为null就不会进行where条件拼接, 指定传入的就会被set方法拼接,所以 QueryWrapper参数可以直接传入user对象
底层实现: 参数name="xxx" 拼接set形成setName,之后检查对象中
* 是否有对应的setName(), 如果匹配该方法,则为对象赋值.
* 注意事项: 参数名称最好以属性名称一致
@GetMapping("findUserByNS")
public User findUserByNS(User user){
return userServicel.findUserByNS(user);
}
@Override
public User findUserByNS(User user) {
QueryWrapper<User> userQueryWrapper = new QueryWrapper<>(user);
return userMapper.selectOne(userQueryWrapper);
}
1.3 RestFul参数接收
REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序就是RESTful
定义:RESTFul是一种请求的规则(语法、定义)
RESTFul说明
Get请求: http://localhost:8090/findUserByNS?name=王昭君&sex=女
- 查询请求
- 参数直观
- 请求的结构冗余,不合适多个参数的写法
请求优化:http://localhost:8090/user/王昭君/女
优势:
- 用户不能了解请求的意图,请求方法名称不能出现动词,只能写名称
- 参数保密,只有后端服务器清楚参数的意义
- 请求字节传输量少,简洁
注意事项:
- URL地址中参数与参数直接使用/分隔
- 请求的参数的位置一旦固定,不可轻易修改
- 用户发请求时,就应该按照restFul的结果执行
- restFul请求一般以get请求为主
RESTFul案例
查询 name=“貂蝉” age> 10 岁 的用户. URL: http://localhost:8080/user/貂蝉/10
@RequestMapping("user/{name}/{age}")
public List<User> findUserByRe(User user){
return userServicel.findByRe(user);
}
@Override
public List<User> findByRe(User user) {
QueryWrapper<User> objectQueryWrapper = new QueryWrapper<>();
objectQueryWrapper.eq("name", user.getName()).gt("age", user.getAge());
return userMapper.selectList(objectQueryWrapper);
}
同名提交问题
用户查询id=1,3,4,5的数据. 如果有同名参数一般采用 ',号 ’ 分隔 URL: http://localhost:8080/findUserByIds?ids=1,3,4,5
var/let/const说明
var 没有作用域的概念,容易出现安全性问题,成员变量
let 作用var类似,有作用域的概念 局部变量
const 定义常量
|