三.day5,SpringMVC参数传递单表查询数据库和VUE学习

controller类 @RestController包含@ResponseBody  //将服务端数据转化为JSON串返回

类里方法:URL地址发送请求,请求类型:GET/POST   /   PUT/DELETE

conreoller层代码:

@RestController
//@RequestMapping("user")
//@ResponseBody //将服务端数据转化为JSON串返回
public class UserController {
    //编码规则:面向接口编程(解耦)
    @Autowired
    private UserService userService;
    @RequestMapping("findall")
    public List<User> UserController(){

        return userService.findAll();
    }
/**
     * URL地址: http
     * 请求类型:GET/POST  /   PUT/DELETE
     * 参数:id=1
     * 返回值结果:User对象的json串
     * */
    //@RequestMapping(value = "",method = RequestMethod.GET)
    /**
     *
     *  @PostMapping
     *  @PutMapping
     *  @DeleteMapping
     *  参数说明:
     *  1.参数名称必须与URL中的名称一致
     *  2.SpringMVC可以根据用户的需求,自动实现类型的转换
     *    底层实现:springmvc所有参数默认都是String类型
     *    根据参数类型,自动实现转换
     *
     * */

    @GetMapping("findUserById")
    public User findUserById(Integer id){
        return userService.findUserById(id);

    }

    @GetMapping("find")
    public List<User> find(String name,String sex){
        return userService.find(name,sex);
    }
    /**优化:
     * 规则:SpringMVC 可以利用对象的方式接受
     * 底层实现: 参数name=XXX  拼接set形成setName,
     * 之后检查对象中是否有对应的setName(),如果匹配则给对象赋值
     *注意事项:参数的名称最好与属性名称一致
     *
     * */
    @GetMapping("findNS")
    public List<User> findNS(User user){
        return userService.findNS(user);
    }
    /**RestFul
     *
     * 后端服务器接收规则
     * 1.参数与参数之间用 / 分开
     * 2.参数的位置一旦确定,不改变
     * 3.用{}接收参数
     * 4.使用@PathVariable 接收
     * 5.如果参数有多个,建议使用对象接收  《参数必须与属性一致》
     * */
    @GetMapping("/user/{name}/{age}")
    public List<User> findNA(User user){
        return userService.findNA(user);
    }
    @GetMapping("findIds")
    public List<User> findIds(Integer[] ids){
        return userService.findIds(ids);
    }

}

service层实现类代码:

@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> findAll() {
        return userMapper.selectList(null);
    }

    @Override
    public User findUserById(Integer id) {
        return userMapper.selectById(id);
    }

    @Override
    public List<User> find(String name, String sex) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("name", name).eq("sex", sex);
        return userMapper.selectList(queryWrapper);
    }

    @Override
    public List<User> findNS(User user) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>(user);
        return userMapper.selectList(queryWrapper);
    }

    @Override
    public List<User> findNA(User user) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("name", user.getName()).gt("age", user.getAge());
        return userMapper.selectList(queryWrapper);
    }

    @Override
    public List<User> findIds(Integer[] ids) {
        List<Integer> array = Arrays.asList(ids);
        return userMapper.selectBatchIds(array);
    }
}

总结:SpringMVC

1.参数名称必须与URL一致

2.可以根据用户的需求,自动实现类型的转换

   底层实现:springmvc所有参数默认都是String类型,根据参事类型,自动实现转换

3.可以传多个参数(冗余),优化:

规则:SpringMVC 可以利用对象的方式接收

 底层实现:参数name=XX  拼接set形成setName,

之后检查对象中是否有对应的 set参数名(),如果匹配则给对象赋值

springmvc 自动拼接where 判断为null则不拼接

注意事项:参数的名称最好与属性的名称一致

4.如果传入多个相同属性值,传入为数组,springmvc解析集合

需将数组转换为集合

 RestFul参数接收


1. RestFul介绍
REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
定义: RESTFul 是一种请求的规则(语法/定义)

2. RESTFul说明
Get请求: http://localhost:8090/findUserByNS?name=王昭君&sex=女
信息: 1.查询请求
           2.参数直观 name=xxx
           3.请求的结构冗余. 不合适多个参数的写法.

请求优化:
http://localhost:8090/user/王昭君/女
优势:
1. 用户不能了解请求的意图 规定:请求方法名称不能出现 “动词”,只能写名词.
2. 参数保密, 只有后端服务器清楚参数的意义.
3. 请求字节传输量少 简洁.
注意事项:
1. URL地址中参数与参数之间使用 /分隔.
2. 请求的参数的位置一旦固定,不可轻易修改.
3. 用户发请求时,就应该按照restFul的结构执行.
4. restFul请求一般以get请求为主. put/delete/post
controller代码:

/**
     * 后端服务器接收规则:
     *     1.参数与参数之后使用 /分隔
     *     2.参数的位置一旦确定,一般不变.
     *     3.接收的参数使用 {形参变量}
     *     4.使用@PathVariable 接收
     *     5.如果参数有多个建议使用对象接收  参数必须与属性一致,SpringMVC自动封装
     * 注意事项: 如果名称不统一,则需要转化 具体如下:
     *          @PathVariable("name") String username
     *
     * url: http://localhost:8090/user/貂蝉/10
     * 参数: name/age
     * 返回值: List<User>
     */

    @GetMapping("/user/{name}/{age}")
    public List<User> findUserByNA(User user){

        return userService.findUserByNA(user);
    }




   /*
    说明: restFul写法1
    @GetMapping("/user/{name}/{age}")
    public List<User> findUserByNA(@PathVariable String name,
                                   @PathVariable Integer age){
        System.out.println(name);
        System.out.println(age);

        return null;
    }*/

VUE入门案例

基本语法:

1.导入JS类库

2.是定VUE实例化

3.实例化VUE对象

4.数据取值

1.var/let/const说明

关于JS中变量定义说明:
1.var 没有作用域的概念 容易出现安全性问题. 成员变量
2.let 作用于var类似, 有作用域的概念 局部变量
3.const 定义常量

练习:

            遇到文本框双向绑定数据

           v-text 当页面没有渲染完成时,则不与展示;

           v-html 将html代码片段  渲染展示;

           

<div id="app">
			<!-- 规则说明:  
				1.{{msg}} 当页面没有渲染成功时.以原标签展现.
				2.v-text  当页面没有渲染完成,则不予展现.
				3.v-html  将html代码片段 渲染展现
			 -->
			<h1>{{msg}}</h1>
			<!-- 1.v-text  -->
			<h1 v-text="msg"></h1>
			<!-- 2.v-html -->
			<div v-html="div"></div>
		</div>
		
		<!-- 导包 --><script src="../js/vue.js"></script>
		<script>
			const app = new Vue({
				el: "#app",
				data: {
					msg: "vue入门案例 哈哈哈哈",
					div: "<h3>我是一个标题标签</h3>"
				}
			})
		</script>

v-model 双向绑定

button标签中

v-on:click="简单的计算"

v-on:click="点击事件(vue方法)"

v-if 如果判断为true 则展现元素

v-else-if 如果不满足v-if,检查是否满足v-else-if

v-else 上述都不满足 才展现.

v-for =" 1,2 in 3 "    1遍历出的值,2下标,3要便利的数组  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值