当前位置: 首页 > news >正文

青岛网站运营推广常州网络推广平台

青岛网站运营推广,常州网络推广平台,网站建设意义模板,做网站前期创建文件夹【Easylive】项目常见问题解答&#xff08;自用&持续更新中…&#xff09; 汇总版 这段代码是一个 MyBatis 的 Mapper XML 配置&#xff0c;实现了批量插入或更新视频文件信息的功能。下面详细解析这个 SQL 语句的各个部分&#xff1a; 1. 基本结构 <insert id"…

【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版

这段代码是一个 MyBatis 的 Mapper XML 配置,实现了批量插入或更新视频文件信息的功能。下面详细解析这个 SQL 语句的各个部分:

1. 基本结构

<insert id="insertOrUpdateBatch" parameterType="com.easylive.entity.po.VideoInfoFilePost">INSERT INTO video_info_file_post(...) VALUES (...)ON DUPLICATE KEY UPDATE ...
</insert>

这是一个典型的 MyBatis 批量操作语句,使用了 MySQL 的 INSERT ... ON DUPLICATE KEY UPDATE 语法。

2. 插入部分详解

INSERT INTO video_info_file_post(file_id,upload_id,user_id,video_id,file_index,file_name,file_size,file_path,update_type,transfer_result,duration
) VALUES
<foreach collection="list" item="item" separator=",">(#{item.fileId},#{item.uploadId},#{item.userId},#{item.videoId},#{item.fileIndex},#{item.fileName},#{item.fileSize},#{item.filePath},#{item.updateType},#{item.transferResult},#{item.duration})
</foreach>

关键点:

<foreach> 标签:MyBatis 的循环标签,用于处理集合
collection="list":表示参数是一个 List 集合
item="item":定义循环变量名
separator=",":每次循环后用逗号分隔
#{} 表达式:MyBatis 的参数占位符,会预编译防止 SQL 注入
• 使用 item.属性名 访问集合元素的属性

3. 冲突更新部分详解

ON DUPLICATE KEY UPDATE
file_index = VALUES(file_index),
file_name = VALUES(file_name)

关键点:

ON DUPLICATE KEY UPDATE:MySQL 特有语法,当主键或唯一键冲突时执行更新
VALUES() 函数:引用 INSERT 语句中尝试插入的值
• 这里只更新了 file_indexfile_name 两个字段,其他字段保持不变

4. 完整逻辑流程

  1. 尝试批量插入多条记录到 video_info_file_post
  2. 如果某条记录的 file_id(假设是主键)已存在,则执行更新操作
  3. 更新时只修改 file_indexfile_name 字段
  4. 其他字段保持原值不变

5. 实际执行示例

假设传入的 List 包含两个元素:

List<VideoInfoFilePost> list = Arrays.asList(new VideoInfoFilePost("id1", "up1", "user1", "vid1", 1, "name1", 100, "path1", 0, 0, 100),new VideoInfoFilePost("id2", "up2", "user1", "vid1", 2, "name2", 200, "path2", 0, 0, 200)
);

生成的 SQL 语句类似:

INSERT INTO video_info_file_post(file_id, upload_id, user_id, video_id, file_index, file_name, file_size, file_path, update_type, transfer_result, duration
) VALUES
('id1', 'up1', 'user1', 'vid1', 1, 'name1', 100, 'path1', 0, 0, 100),
('id2', 'up2', 'user1', 'vid1', 2, 'name2', 200, 'path2', 0, 0, 200)
ON DUPLICATE KEY UPDATE
file_index = VALUES(file_index),
file_name = VALUES(file_name)

6. 设计考虑

  1. 性能优化:批量操作减少数据库往返次数
  2. 原子性:整个操作在一个事务中完成
  3. 灵活性:只更新需要变更的字段
  4. 幂等性:重复执行不会产生副作用

7. 使用场景

这种批量插入或更新操作特别适合:
• 初始化数据
• 批量导入
• 数据同步
• 需要处理大量记录的定时任务

8. 注意事项

  1. 确保表有主键或唯一键约束,否则 ON DUPLICATE KEY UPDATE 不会生效
  2. 大批量操作时可能需要分批处理,避免单条 SQL 过大
  3. 在高并发环境下注意锁竞争问题
http://www.cadmedia.cn/news/3608.html

相关文章:

  • 学设计的网站有哪些百度搜索引擎优化
  • 当年的51网站市场营销手段13种手段
  • 邻水网站建设seo课程排行榜
  • 最专业网站建设开发百度可以发布广告吗
  • 莱芜新闻联播回放如何进行搜索引擎优化?
  • 技术专业网站建设爱站网长尾关键词搜索
  • 做mla网站千锋教育介绍
  • 电商设计参考网站百度快照优化的优势是什么
  • asp网站建设教程襄阳网站seo
  • 金坛建设网站深圳网站设计实力乐云seo
  • 做外贸必须关注的20个b2b网站_排名无先后seo百度刷排名
  • 新乡中企网站建设semantics
  • 免费公司网站模版seo关键词优化哪个平台好
  • 龙岗网站建设价位搜索引擎关键词排名优化
  • 深圳企业网站推广论述搜索引擎优化的具体措施
  • 信息图表设计网站新手怎么开始做电商
  • 肖云路那有做网站公司西安疫情最新数据消息中高风险地区
  • 网页设计师培训班大连如何做好seo优化
  • 模板网站建设代理商百度小说搜索风云榜
  • 怎么做网站下载链接百度短链接在线生成
  • 威海泰浩建设集团有限公司网站杭州排名优化公司电话
  • 网站建设中扒站为什么是违法的百度推广云南总代理
  • 英雄联盟网站建设网络营销公司注册找哪家
  • 山东省建设局网站监理员考试seo优化的内容有哪些
  • 企业门户网站建设与发展趋势网站管理工具
  • 网站建设网站定制市场推广计划方案
  • 望野什么意思百度seo优化网站
  • 邯郸网站建设在哪里今日小说搜索风云榜
  • 医院网站建设的资料黄冈网站seo
  • 服装搭配网站建设策划书搜索推广广告