MP更新操作 用户新增表单

  1. MP 更新操作
    1.1 更新操作
    @SpringBootTest
    public class TestMP2 {

    @Autowired
    private UserMapper userMapper;

    /**

    • 将ID=229的用户名称 改为六一儿童节
      */
      @Test
      public void updateUser(){
      User user = new User();
      user.setId(229).setName(“六一儿童节”);
      //set name=“xxx” where id = 229
      userMapper.updateById(user);
      }

    /**

    • 更新操作2
    •  将name="六一儿童节" 改为"端午节"
      
    • 参数说明:
    •     1.实体对象  封装修改后的数据 set结构
      
    •     2.UpdateWrapper 修改的条件构造器
      
    • Sql: update demo_user set name=“端午节” where name=“61”
      */
      @Test
      public void updateUser2(){
      User user = new User();
      user.setName(“端午节”);
      UpdateWrapper updateWrapper = new UpdateWrapper();
      updateWrapper.eq(“name”, “六一儿童节”);
      userMapper.update(user,updateWrapper);
      }
      }
  2. 项目环境搭建
    2.1 序列号问题
    2.1.1 为什么序列化
    需求: 有时项目调用时需要进行远程过程调用(RPC) A系统中需要B系统的User数据.由于是不同的2个系统,所以需要通讯协议(http/https/tcp/udp…)的支持.
    问题: 由于user对象可以通过协议进行网络传输. 如果保证B系统中传递的User数据,到了A系统中也能正常的识别!!! (保证数据的准确性!!!)
    电影(恶心类型): 变蝇人

2.1.2 序列化结构
序列化: 将对象按照特定的字节顺序 进行排列.
反序列化: 将一段字节信息,按照特定的格式顺序读取 ,将字节信息转化为对象的过程.
在这里插入图片描述

2.1.3 序列化代码
在这里插入图片描述

2.2 代码层级结构
在这里插入图片描述

2.3 浏览器F12说明
在这里插入图片描述

2.4 用户新增入库
2.4.1 编辑html页面
编辑一个form表单,实现数据提交

demo练习

用户新增表单

名称:
年龄:
性别:

2.4.2 编辑UserController
@RestController
public class UserController {

@Autowired
private UserService userService;

/**
 * URL: /addUser
 * method: post
 * 参数: form表单传参  name/age/sex
 * 返回值: 返回成功的字符信息
 */
@PostMapping("/addUser")
public String addUser(User user){

    userService.addUser(user);
    return "新增成功!!";
}

}
2.4.3 编辑UserService
@Service
public class UserServiceImpl implements UserService{

@Autowired
private UserMapper userMapper;

@Override
public void addUser(User user) {
    userMapper.insert(user);
}

}
2.5 form表单提交的说明
说明: 通过form表单中的action属性 可以实现数据的远程传输. 当点击form表单的提交按钮时,页面会发生同步的跳转.将数据直接发送给后端服务器. 该请求是同步的请求方式.
结论: 同步请求 不需要添加跨域的注解.
在这里插入图片描述

2.6 下载jQuery函数类库
在这里插入图片描述

2.7 Ajax介绍
2.7.1 介绍
Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)在 2005年被Jesse James Garrett提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 以及最重要的XMLHttpRequest。 [3] 使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。 [3]
总结: 局部刷新,异步访问

2.7.2 同步请求
知识铺垫: 同步问题
角色: 1.用户 2.服务提供者
同步请求缺点: 当后端服务器不能及时处理请求时,用户处于等待的状态,而页面处于刷新状态.
用户体验差.
在这里插入图片描述

2.7.3 异步请求
同步: 用户直接访问服务器.
异步: 用户间接访问服务器 用户在等待数据的过程中,还可以执行其他的业务操作.
请求过程:
1.用户将请求交给Ajax引擎处理. (请求)
2.Ajax引擎接收到用户请求之后,自己发起新的URL请求,向服务器获取数据.
3.服务器接收到请求之后,根据自身进行业务处理,最终将结果返回 返回给引擎.
4.Ajax引擎通过事先规定好的 回调函数实现返回值的传递. 当用户获取返回值之后,则开始调用函数中的内容.
局部刷新
在这里插入图片描述

2.8 获取用户列表数据
2.8.1 编辑UserController
/**
* 查询User表的全部数据
* 请求路径: http://localhost:8090/getUser
* 参数: 不需要参数
* 返回值: List
*/
@GetMapping("/getUser")
public List getUser(){

    List<User> userList = userService.getUser();
    return userList;
}

2.8.2 编辑UserService
通过MP获取后端数据集合

 @Override
public List<User> getUser() {

    return userMapper.selectList(null);
}

2.8.3 同步访问页面效果
说明: 通过localhost:8090/getUser 同步的方式可以获取user的JSON数据信息
在这里插入图片描述

2.9 用户列表前端实现
2.9.1 循环写法
2.9.1.1 基本for循环
//js 实现for循环
for(var i=0;i<data.length;i++){
var user = data[i]
console.log(user)
}
2.9.1.2 循环写法-in
in关键字 in 表示遍历的是下标

				for(var index in data){
					
					console.log(data[index])
				}

2.9.1.3 循环写法-of
增强for写法 of 表示直接获取遍历内容

//增强for写法 of 表示直接获取遍历内容
for(var user of data){
	
	console.log(user)
}

2.9.2 编辑userList.html页面
发起Ajax请求,动态获取后端服务器数据,之后通过JS进行数据解析,之后通过表格展现数据

用户列表展现
	<!-- 1.导入JS函数类库 -->
	<script src="jquery-3.6.0.min.js"></script>
	<!-- 2.编辑JS发起Ajax请求 -->
	<script>
		//循环写法
		/**
		 * 		//js 实现for循环
				for(var i=0;i<data.length;i++){
					var user = data[i]
					console.log(user)
				}
				
				in关键字  index代表下标
				for(var index in data){
					
					console.log(data[index])
				}
				
				//增强for写法 of 表示直接获取遍历内容
				for(var user of data){
					
					console.log(user)
				}
		 */
		
		
		
		
		//让页面加载完成之后再次执行  
		//语法: 函数式编程
		$(function(){
			//alert("页面加载完成,jQuery调用成功!!!!")
			//利用Ajax的get请求方式   
			//http://localhost:8090/getUser 全部数据
			//将数据以表格的形式展现
			//种类: 1.$.get()   2.$.post() 3.$.getJSON()  4.$.ajax()
			//js中可以根据返回值的数据动态匹配类型
			//$.get("url地址","参数",function(data){},"返回值类型")
			
			var name = "张三"
			var age = 18
			//参数写法1: key=value&key2=value2
			var args1 = "name="+name + "&age="+age
			//参数写法: {key:value,key2:value2}
			var args2 = {name:name,age:age}
			//如果有参数,则直接添加,如果没有参数,则直接省略
			var url = "http://localhost:8090/getUser";
			$.get(url,function(data){
				//增强for写法 of 表示直接获取遍历内容
				for(var user of data){
					var id = user.id
					var name = user.name
					var age = user.age
					var sex = user.sex
					var tr = "<tr align='center'><td>"+id+"</td><td>"+name+"</td><td>"+age+"</td><td>"+sex+"</td></tr>"
					
					//利用ID选择器定位table标签
					//append 向每个匹配的元素内部追加内容。
					$("#tab1").append(tr)
				}
			})
		})
	</script>
</head>
<body>
	<table  id="tab1"   border="1px" width="700px" align="center">
		<tr>
			<td colspan="4" align="center"><h1>表格数据</h1></td>
		</tr>
		<tr align="center">
			<td>ID编号</td>
			<td>名称</td>
			<td>年龄</td>
			<td>性别</td>
		</tr>
	</table>
</body>
<think>嗯,用户让我介绍一下HTML5的新增特性。首先,我需要回忆一下HTML5的主要更新内容,确保信息准确。HTML5是在2014年正式发布的,作为HTML的第五次重大修订,带来了很多新功能和改进。 首先,我应该分几个大类来组织内容,这样结构清晰。常见的分类包括语义化标签、多媒体支持、图形与动画、本地存储、Web性能、表单增强、API支持以及兼容性和标准化。 语义化标签是HTML5的重要部分,比如header、footer、article这些标签,它们帮助搜索引擎和屏幕阅读器更好地理解页面结构。然后是多媒体的支持,比如video和audio标签,之前需要Flash,现在原生支持了。 图形和动画方面,canvas和svg的支持,尤其是canvas可以用来做游戏或者数据可视化。本地存储部分,localStorage和sessionStorage比cookie更好用,存储容量更大,还有IndexedDB适合更复杂的数据。 Web性能优化方面,Web Workers可以在后台运行脚本,避免阻塞主线程。表单增强包括新的输入类型和属性,比如email、date,还有placeholder和autocomplete这些属性,提升用户体验。 API方面,地理位置、拖放API、WebSocket这些都很重要,尤其是WebSocket实现了全双工通信,适合实时应用。兼容性和标准化方面,HTML5统一了文档声明,简化了语法,比如标签可以不闭合,引号可省略,但最好还是保持规范写法。 需要检查是否有遗漏的重要特性,比如Web Storage、WebSocket、语义化标签这些确实是核心内容。还要注意用户可能需要实际应用的例子,比如在代码中使用video标签,或者localStorage的方法。不过用户没有要求代码示例,所以可能不需要深入,但提到相关API时可以简单说明用途。 需要确保每个特性解释清楚,但不过于冗长。比如在表单增强部分,除了新的输入类型,还有表单验证属性如required和pattern,这些对前端开发很有帮助。 最后,确保回答结构清晰,分点列出,每个大类下有子项,帮助用户逐步了解。可能用户是前端开发者,或者刚入门的学习者,需要全面但易懂的介绍。要避免技术术语过于复杂,同时保持专业性。 检查是否有错误,比如Web Workers属于性能优化,正确。离线应用通过缓存manifest文件,不过现在Service Worker更常用,但HTML5中可能还是提到应用缓存。不过有些特性已经被现代API取代,但作为介绍HTML5,还是需要按标准内容来。 总结下来,分八个主要部分,每个部分列出关键特性,用简短的说明,确保覆盖主要新增内容,结构清晰,语言准确。</think>HTML5是HTML的第五次重大修订,于2014年正式发布。以下是其核心新增特性的分步解析: --- ### 一、语义化标签 1. **结构化标签** - `<header>` `<footer>`:定义页眉/页脚 - `<nav>`:导航栏 - `<article>`:独立内容块(如博客文章) - `<section>`:文档中的逻辑分区 - `<aside>`:侧边栏或附属内容 2. **媒体内容标签** - `<figure>` `<figcaption>`:标注图片/图表 - `<time>`:定义时间或日期 --- ### 二、多媒体支持 1. **原生音视频** - `<video>` `<audio>`标签直接嵌入媒体 - 支持格式:MP4、WebM、Ogg(视频);MP3、WAV(音频) - 示例: ```html <video controls> <source src="video.mp4" type="video/mp4"> </video> ``` --- ### 三、图形与动画 1. **`<canvas>`绘图** - 通过JavaScript实现动态2D/3D图形 - 常用于数据可视化、游戏开发 2. **SVG支持** - 矢量图形直接嵌入,支持缩放不失真 --- ### 四、本地存储 1. **Web Storage** - `localStorage`:永久存储(需手动清除) - `sessionStorage`:会话级存储(关闭标签页失效) 2. **IndexedDB** - 客户端数据库,支持复杂数据存储 --- ### 五、Web性能优化 1. **Web Workers** - 后台运行JavaScript,避免阻塞主线程 2. **应用缓存** - 通过`manifest`文件实现离线访问 --- ### 六、表单增强 1. **新输入类型** - `email` `url` `date` `color` `range`等 2. **表单验证** - `required`必填字段 - `pattern`正则校验 - `placeholder`输入提示 --- ### 七、API支持 1. **地理位置** - `Geolocation API`获取用户位置 2. **拖放操作** - `Drag and Drop API`实现元素拖放 3. **实时通信** - `WebSocket`全双工通信协议 --- ### 八、兼容性与标准化 1. **统一文档声明** - 简化的`<!DOCTYPE html>` 2. **语法宽松性** - 允许标签不闭合、属性不加引号(但建议规范写法) --- ### 总结 HTML5通过语义化标签、多媒体原生支持、本地存储等特性,显著提升了Web应用的功能和性能,同时推动开发标准化。这些改进为现代Web开发(如响应式设计、跨平台应用)奠定了核心基础。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值