java第三阶段第八天--CureGuy

1 、Axios 学习

1.1 、get请求

1.1.1 、请求方式说明

1.http://;ocalhost:8080/findUser?id=xxx&name=xxxx

2.利用对象的方式进行数据封装  axios.get(url,{params:封装的对象})

3.RestFul方式提交方式

1.1.2 、get-restful 案例

    @GetMapping("/findUserByAS")
    public List<User> findUserByAS(User user){
        return userService.findUserByAS(user) ;
    }

    @GetMapping("user/{name}/{sex}")
    public List<User> findUserByNS(User user){return userService.findUserByNS(user);}
    <select id="findUserByAS" resultType="User">
    select * from demo_user where age=#{age} and sex=#{sex}
    </select>
    <select id="findUserByNS" resultType="User">
    select * from demo_user where name=#{name} and sex=#{sex}
    </select>
	<script>
/**
				 *  作业2:  根据age/sex查询用户信息
				 * 	url地址: http://localhost:8090/axios/findUserByAS
				 *  参数:    id=1
				 *  返回值:  console.log输出  
				 *  知识点:  根据对象传递参数时,使用params关键字
				 */
	let url2="http://localhost:8080/axios/findUserByAS"
	let user = {age : 18, sex : "女"}
	axios.get(url2,{params : user}).then(function(promise){
		console.log(promise.data)
	})
	// 利用restful实现数据获取
	// 根据name和sex查询数据
	// 模板字符串  语法ES7  一对反引号进行数据拼接
	//						通过  ${}  获取变量
	let name="金刚葫芦娃"
	let sex="男"
	//let url3="http://localhost:8080/axios/user/"+name+"/"+sex+""
	let url3=`http://localhost:8080/axios/user/${name}/${sex}`
	axios.get(url3).then(function(promise){
		console.log(promise.data)
		
	})
		</script>

1.2 、post-restful 案例

参数在http协议传输中变成了json串

    /**
     * 业务:实现用户的新增
     * URL: http://localhost:8090/axios/saveUser
     * 参数: {"name":"国庆快乐","age":72,"sex":"女"} JSON串
     * 返回值: String 新增成功
     * 知识点: post请求传递对象时,传递的数据是一个json串.不能直接为User对象赋值.
     * 解决方案:
     *        1.对象转化为JSON  @ResponseBody
     *        2.JSON转化为对象  @RequestBody
     *
     */
    @PostMapping("/saveUser")
    public String saveUser(@RequestBody User user){
        System.out.println(user);
        userService.saveUser(user);
        return "ok";
    }
	//实现post请求入库操作 实现用户入库
			//{params : user}只能用于get的请求方法
			//post中的参数直接传递给对象axios.post(url,user)
			let url="http://localhost:8080/axios/saveUser"
			let user ={
				"name": "国庆快乐!",
				"age" : 72,
				"sex" : "女"
			}
			axios.post(url,user).then(function(promise){
				console.log(promise)
			})
@Insert("insert into demo_user value(null,#{name},#{age},#{sex})")
    void saveUser(User user);

1.3 、Ajax简化操作

1.3.1 、指定公共的请求前缀

<script>
			//指定公共的请求前缀
			axios.defaults.baseURL = "http://localhost:8080"
			
			
			
			//实现post请求入库操作 实现用户入库
			//{params : user}只能用于get的请求方法
			//post中的参数直接传递给对象axios.post(url,user)
			//let url="http://localhost:8080/axios/saveUser"
			let url="/axios/saveUser"
			let user ={
				"name": "国庆快乐!",
				"age" : 72,
				"sex" : "女"
			}
			axios.post(url,user).then(function(promise){
				console.log(promise)
			})
		</script>
		

1.3.2 、async-await简化操作

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>简化操作</title>
	</head>
	<body>
		<h1>async-await</h1>
		<script src="../js/axios.js"></script>
		<script>
			//指定请求前缀
			axios.defaults.baseURL="http://localhost:8080"
			//async 必须标识函数方法
			//await 必须标识ajax请求
			//实际意义:解决了ajax中的问题,“回调地狱”
			//定义函数
			async function getUser(){
				// let promise =await axios.get("/getUser")
				// console.log(promise.data)
			
			//解析赋值 固定写法
			let {data : result}=await axios.get("/getUser")
			console.log(result)
			}
			//调用函数
			getUser()
			// axios.get("/getUser").then(function(promise){
			// 	console.log(promise.data)
			// })
		</script>
	</body>
</html>

2 、Curd操作

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>用户列表展现案例</title>
	</head>
	<body>
		<div id="app">
			<div align="center">
				<h3 align="center">用户新增</h3><br>
				<p>
					<!-- 看到input框架 第一时间想到双向数据绑定 -->
					用户名称: <input type="text" name="name" v-model="addUser.name"/>
					用户年龄: <input type="text" name="age"  v-model="addUser.age" />
					用户性别: <input type="text" name="sex"  v-model="addUser.sex" />
					<button @click="addUserBtn">新增</button>
				</p>
			</div>
			<hr />
			<div align="center">
				<h3 align="center">用户修改操作</h3><br>
				<p>
						用户ID号: <input type="text" name="id"   v-model="updateUser.id"   disabled/>
						用户名称: <input type="text" name="name" v-model="updateUser.name"/>
						用户年龄: <input type="text" name="age"  v-model="updateUser.age"/>
						用户性别: <input type="text" name="sex"  v-model="updateUser.sex"/>
						<button @click="updateUserCommit">修改</button>
				</p>
			</div>
			<h1 align="center">用户列表展现案例</h1>
			<table align="center" border="1px" width="80%">
				<tr align="center">
					<td>ID编号</td>
					<td>姓名</td>
					<td>年龄</td>
					<td>性别</td>
					<td>操作</td>
				</tr>
				<tr align="center" v-for="user in userList">
					<td v-text="user.id"></td>
					<td v-text="user.name"></td>
					<td v-text="user.age"></td>
					<td v-text="user.sex"></td>
					<td>
						<button @click="updateBtn(user)">修改</button>
						<button>删除</button>
					</td>
				</tr>
				
			</table>
		</div>
		
		<script src="../js/axios.js"></script>
		<script src="../js/vue.js"></script>
		<script>
			//为axios执行前缀
			axios.defaults.baseURL="http://localhost:8080"

			const app = new Vue({
				el: "#app",
				data: {
					//3.定义数据列表
					userList: [],
					//指定新增对象
					addUser: {
						name: '',
						age: '',
						sex: ''
					},
					updateUser: {
						id: '',
						name: '',
						age: '',
						sex: ''
					}
				},
				methods: {
					//2.定义获取列表数据的函数
					async getUserList(){
						let {data: result} = await axios.get("/axios/findAll")
						//console.log(result)
						//将ajax返回值传递给Vue
						this.userList = result
					},
					async addUserBtn(){
						//将数据实现入库操作
						let {data: result} = await axios.post("/axios/saveUser",this.addUser)
						//用户提示
						alert(result)
						//清空原有数据
						this.addUser = {}
						//如果新增成功,应该重新获取列表信息
						this.getUserList()
					},
					updateBtn(user){
						//将用户传递的数据绑定到修改页面中.
						this.updateUser = user
					},
					async updateUserCommit(){
						//实现数据的更新操作
						let {data: result} = await axios.put("/axios/updateUser",this.updateUser)
						alert(result)
						this.updateUser = {}
						this.getUserList()
					}
				},
				mounted(){
					//1利用生命周期函数调用getUser函数
					this.getUserList()
				}
			})
			
		</script>
	</body>
</html>

    /**
     * 业务:实现用户的新增
     * URL: http://localhost:8090/axios/saveUser
     * 参数: {"name":"国庆快乐","age":72,"sex":"女"} JSON串
     * 返回值: String 新增成功
     * 知识点: post请求传递对象时,传递的数据是一个json串.不能直接为User对象赋值.
     * 解决方案:
     *        1.对象转化为JSON  @ResponseBody
     *        2.JSON转化为对象  @RequestBody
     *
     */
    @PostMapping("/saveUser")
    public String saveUser(@RequestBody User user){
        System.out.println(user);
        userService.saveUser(user);
        return "ok";
    }

    /**
     * 业务: 实现用户更新
     * URL: /axios/updateUser
     * 参数: json串
     * 返回值: 提示信息
     */
    @PutMapping("updateUser")
    public String updateUser(@RequestBody User user){

        userService.updateUser(user);
        return "更新操作成功!";
    }

修改前:

 

修改后:

 

新增:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值