- 博客(322)
- 收藏
- 关注
原创 表单控件(input的Type决定了它是什么表单控件)
autocomplete是是否自动填充,一般把账号和密码的自动填充关闭即可(敏感信息不让他自动填充)accesskey是元素获得焦点的快捷键,比如京东的网站:ALT+S就可以快速获得搜索框的焦点。maxlength一般用于设定输入的长度,比如验证码,只能输入四位。各个表单的最外边要包含一个form。交给了一个后台去进行了管理。
2025-11-24 16:09:05
32
原创 TRUNCATE 和 DELETE 有什么区别
要清空整张表?→ 用TRUNCATE(快、重置 ID)要删部分数据 or 需要回滚/触发器?→ 用DELETE如果是彻底清空→ 优先考虑TRUNCATE如果是按条件删除(如保留最近7天)→ 只能用DELETE💡 小技巧:生产环境执行TRUNCATE前,建议先备份或确认无外键依赖!
2025-11-20 15:12:15
753
原创 锁表是什么?大批量数据删除时,应该采取什么策略?
锁表”是数据库为了保证事务的 ACID 特性(尤其是隔离性和一致性),在执行写操作(如UPDATEDELETEINSERT)时,对相关数据加锁的一种机制。🔒锁的目的:防止多个事务同时修改同一数据,导致脏写、丢失更新等问题。问题真相会导致锁表吗?❌不会!锁表是因为大事务 + 大数据量操作什么叫“锁表”?✅ 通常指大量行锁未释放,导致其他操作被阻塞的现象如何避免?✅分批处理 + 小事务,每批独立提交用在哪?✅ 只用于单批次操作,不要包住整个循环💡记住事务越小越好,持有锁的时间越短越好。
2025-11-20 15:10:00
491
原创 rollbackFor 和 noRollbackFor 有什么区别
✅ 效果:抛出时,事务回滚。表示所有异常都回滚(包括受检异常),这是很多团队的默认实践。“这些异常要回滚!“就算抛这些异常,也别回滚!默认只对和Error回滚优先级更高合理使用这两个属性,可以让你的事务行为既安全又灵活。
2025-11-20 15:07:47
336
原创 大数据量的批量删除时,如何进行拆分,以及介绍一个集合的subList
是List 的标准方法,用于高效截取子范围它返回的是原列表的视图不是副本在分批处理大数据时非常有用,但要注意:索引边界是否需要独立副本避免并发修改异常💡 记住口诀:“subList 是窗口,改动原列表;要安全,包一层 new ArrayList!
2025-11-20 15:00:55
884
原创 批量删除怎么写
问题答案批量删除怎么写?用为什么用 List 不用数组?✅ ORM 支持更好、✅ 动态灵活、✅ JSON 反序列化更稳定能不能用数组?技术上可能,但不推荐,违背主流框架设计习惯最佳实践?用List+ DTO 校验 + 分批处理 + 软删除🌟记住一句话“在 Web 开发中,99% 的场景用List,1% 的高性能场景才考虑数组。如果你用的是 Go、Node.js 或其他语言,也可以告诉我,我会给出对应示例 😊。
2025-11-20 13:44:49
454
原创 @PathVariable 的详细用法
问题答案能为 null 吗?❌ 不能。路径变量是 URL 的一部分,必须存在。不传会怎样?要么 404(路径不匹配),要么 400(类型转换失败)。有用吗?❌ 无效。Spring 忽略该属性。如何实现“可选 ID”?✅ 用两个接口,或改用。
2025-11-20 11:28:33
333
原创 @RequestParam如何使用
如果你希望把空字符串""也当作null,可以结合或者通过全局配置(较复杂,一般不需要)。需求写法允许参数不传,接收null不传时用默认值数字/布尔参数可为空使用IntegerLongBoolean等包装类✅记住口诀“要 null,设 false;要默认,用 defaultValue;基本类型不能 null,包装类型才安全。
2025-11-20 11:26:35
381
原创 i18n是什么
i18n = internationalization = 国际化目的是让一个应用能轻松支持多种语言和地区常见实现:使用资源文件(.yaml) + Locale 检测 + 消息工具类(如和你之前遇到的错误直接相关!如果你在项目中看到文件,那就是 i18n 的典型体现 😊。
2025-11-19 16:54:58
411
原创 MySQL和MyBatis常用的动态SQL函数
简单逻辑 → MySQL 函数IFNULLCASECOALESCE复杂条件 → MyBatis<if><choose>批量操作 →<foreach>动态排序 → 白名单 +${}(慎用)永远不用字符串拼接 SQL!聚合结果必须防 NULL💡记住:99% 的动态需求,MyBatis 的就够了,无需存储过程!场景推荐方案空值处理IFNULLCOALESCE条件分支IFCASE WHEN字符串拼接CONCAT_WS(自动跳过 NULL)真正动态(表名/字段名)存储过程 +PREPARE(慎用)
2025-11-19 11:00:45
786
原创 SLF4J 和 Log4j的区别
SLF4J 是日志门面(接口规范),Log4j 是日志实现(具体工具)。你可以用 SLF4J 写代码,底层实际使用 Log4j、Logback 或其他日志框架。你应该记住✅永远在代码中使用(通过获取)✅不要直接使用或✅具体用 Log4j2 还是 Logback,由项目依赖决定,与代码无关✅SLF4J 是“标准接口”,Log4j 是“具体实现”——就像 JDBC 和 MySQL 驱动的关系这样设计让你的代码更灵活、更安全、更容易维护 💡如有更多疑问,欢迎继续问!
2025-11-18 14:03:46
800
原创 Spring AOP面向切面编程的核心注解
作用:标记一个类为“切面”,里面可以包含通知(Advice)和切入点(Pointcut)必须配合@Component或被 Spring 管理示例@Aspect@Component// 通知方法写在这里注解执行时机能否获取返回值能否获取异常是否必须手动 proceed@Before方法前❌❌❌方法成功返回后✅❌❌方法抛异常后❌✅❌@After方法结束后(无论成败)❌❌❌@Around包围整个方法✅(通过 proceed())✅(通过 try-catch)✅。
2025-11-18 14:01:12
815
原创 HTTP请求的分隔符(boundary)
boundary这是一个业务自定义的认证方式(不是标准 HTTP 头)服务端会读取的值,验证调用者身份类似于,但这里是项目自定义的代码作用定义 multipart 各部分的分隔符告诉服务器如何解析请求体传递认证令牌(项目自定义)本质:这是实现HTTP 文件上传所必需的标准步骤,确保服务器能正确分离出“用户ID”、“文件名”、“文件内容”等不同部分。
2025-11-18 11:11:24
271
原创 SEO(Search Engine Optimization) 搜索引擎优化
SEO 是通过优化网站内容和技术结构,让搜索引擎更愿意把你的页面展示给搜索用户,从而获得免费、精准、长期的流量。个人博主→ 优化文章标题和内容电商网站→ 优化商品页关键词和图片企业官网→ 做好技术基础 + 发布行业干货都可以从 SEO 中受益!需要我给你一个SEO 快速自查清单或针对某类网站的优化建议吗?😊。
2025-11-14 16:31:54
321
原创 H5新的结构标签(要看公司的实际需求使用)
aside和article属于块级元素,所以各自占一行,article里面可以进行分块,也就是section。网页的main分成了article和aside。小米的网站并没有使用最新的H5标签。vivo官网用到了最新的H5标签。
2025-11-14 16:31:11
158
原创 超链接标签的分类,什么是锚点链接,怎么用锚点链接集合CSS实现页面滑动效果
<title>锚点链接</title>-- 这里复制代码 让页面实现滑动效果 -->
2025-11-14 15:53:21
188
原创 HTML的视频和音频,H5视频格式插入的要求、视频标签兼容性的写法,音频标签兼容性的写法,以及下载音乐的方法
在h5中如果属性的 键 和值是相同的,则可以省略值浏览器的策略是视频没有静音,无法自动播放想要自动播放,需要静音想要自动播放 autoplay,需要先静音 muted , 循环播放loop,poster是封面视频比较大,需要加载时间,所以需要放一个封面ie和safari并不支持WebM和OggWebM的视频大小会小一点source标签一定要写type,否则会去尝试加载,知道找到一个能够正确播放的格式。
2025-11-14 14:08:18
264
原创 HTML标签关系,Trae的自动换行,HTML的语义化,强调与重要性标签,行内元素和内联元素、img标签,图片的格式及其特色
代码结构更加清晰,阅读更加友好,后期对搜索引擎做SEO的时候会更友好,网站排名更加靠前,有更好的可访问性,所以合适的地方要用合适的标签。用盘符的时候用插件打开图片可能不显示,此时跳到这个html所在的文件路径,即可属性图片的打开。jpg:颜色比较丰富,体积会大一点,网页中的图片是非透明背景的,就可以采用这种方式。内联元素可以放内联元素,不可以放块级元素,内联元素一行可以放多个,直到他显示不开。但是通过CSS,内联元素可以改成块级元素,块级元素也可以改成内联元素。webp格式的图片,比jpg小。
2025-11-14 11:00:35
300
原创 本地开发和部署
从lesson-init分支开发,在克隆的时候加上了-b参数,表示从指定分支克隆还需要创建一个开发的分支dev,这样lesson-init分支就再也不会收到影响了,而是直接基于dev去做开发后续在开发新的功能的时候还会在dev上创建其他分支,每一个功能点创建一个新的分支,开发完成之后合并到dev,最后去部署。
2025-11-14 08:57:47
689
原创 HTML5 语义结构,以及HTML5的头标签是什么含义
head>元素主要保存供机器人处理的信息,主要是给搜索引擎进行处理的。HTML的头文件的代码代表了什么。整个页面最大的标签是HTML。CSS也是放到head里面的。title是网页的标题。移动端和网页端不一样。
2025-11-14 08:50:05
204
原创 虚拟内存是什么?
虚拟内存是一种由操作系统和硬件协作实现的“内存幻觉”技术,它让每个程序都拥有独立、连续、看似无限大的内存空间,同时高效利用有限的物理内存和磁盘空间。它是现代多任务操作系统(Windows / Linux / macOS)的基石之一。Linux 中如何查看 Swap 使用情况(free -hswapon -s如何调整虚拟内存大小为什么有些服务器会“禁用 Swap”
2025-11-12 20:41:03
900
原创 hosts 文件 + Nginx 反向代理 = 实现浏览器输入域名自动跳转到指定服务的完整方案
场景是否适用开发环境调试多个服务✅ 非常适合内网系统暴露给团队使用✅ 推荐做法没有公网 DNS 或云解析✅ 必须用 hosts + Nginx多人协作开发❌ 单独 hosts 不行,需配合内网 DNS 或 nginx + 代理✅是的,你现在的配置已经实现了“浏览器输入域名 → 自动代理转发到对应服务”的功能![浏览器] → [hosts 解析] → [Nginx 反向代理] → [后端服务]hosts文件配置正确Nginx 配置正确且已重载后端服务正常运行。
2025-11-12 16:54:43
294
原创 HTTP 请求和响应的基本结构
HTTP 请求 =🔹请求行(方法 + 路径 + 版本)🔹请求头(元数据)🔹空行(分隔符)🔹请求体(可选,携带数据)这是 Web 通信的基石,无论是前端调用 API、后端接收请求,还是测试工程师抓包分析,都离不开对这个结构的理解。如果你需要,我也可以提供用 curl 或 Postman 构造请求的例子😊问题回答状态码是否封装在 HTTP 请求头中?❌ 不在请求头(Header),也不在请求中(这是响应!它在HTTP 响应的状态行中。是否包含状态码?
2025-11-12 15:35:55
431
原创 微服务部署完成之后(持续集成),如何做一些简单的测试,Swagger文档测试和前后端联调测试的配置,以及Nginx如何做反向代理
2.网关还做了文档的聚合,可以访问每个微服务的接口去查看文档,还可以在网关查看所有微服务的文档。通过网关访问,发现外面包了一层code,msg这种的数据。1.Swagger接口文档测试。
2025-11-12 15:30:54
476
原创 Redis的基础使用,以及Redis中的文件夹
安装 Redis for Windows(或 WSL2)启动 Redis 服务Spring Boot 添加配置注入或操作数据@Bean");// 输出 Hello Redis!启动后控制台会打印,说明连接成功!问题答案Redis 能创建真实文件夹吗?❌ 不能,它是扁平 key-value如何模拟文件夹?✅ 用命名,如管理工具会显示成树形吗?✅ 会(如果用或分隔)生产环境如何安全列出“文件夹”内容?✅ 用SCAN命令,避免KEYS。
2025-11-11 09:31:09
774
原创 持续集成(DevOps),核心:Jenkins、Gogs、Docker(写完代码后,直接Push到Gogs,然后Gogs利用Web钩子通知Jenkins,Jenkins自动完成项目的构建编译打包)
之前没有持续集成环境的时候,人们都是尽可能的降低代码构建的频率,也就是大多数都是在本地开发好功能,等所有功能开发的差不多了,再统一的合并和提交代码和构建发布,由于在这一过程中编写了大量的代码,主干代码和分支代码一定存在很大的差异,所以在提交和合并的时候肯定会有很大的冲突,并且解决也很麻烦,而持续集成则不同,由于可以自动的构建发布和测试,因此可以提高代码测试的频率,写一小部分功能就立马集测,立马就能解决代码中的问题。由于把这个流程自动化了,这个阻隔就没有了,开发和运维直接就可以无缝衔接,很顺滑。
2025-11-10 21:03:09
199
原创 使用Path时,路径拼接不对的问题
问题原因解决方案变成D:\1\...path以开头,被resolve()当作绝对路径去掉前导或预处理路径穿越风险用户可传使用校验Windows 路径混乱默认使用 Windows 风格统一使用。
2025-11-10 17:29:20
326
原创 查看SpringBoot版本的几种方法
Spring Boot 的 JAR 包中包含版本信息在。💡 在 Spring Boot 可执行 JAR 中,如果你只是想快速知道当前项目用的什么版本,模块中,确保你的项目依赖了。
2025-11-10 17:28:18
272
原创 Knife4j 接口调试无法测试图片上传问题的解决方案
原因修复方式未指定加上用而非改为未声明用@ApiParam或非 API 参数干扰解析用@ApiIgnore忽略✅ 按照上述任一方案修改后,Knife4j 就能正常显示文件上传按钮了。需要我帮你生成完整可用的 Controller 方法模板吗?
2025-11-10 17:06:54
418
原创 合并两个数组
场景推荐方法基本类型数组(int[]double[]等)或对象数组(String[], 自定义类[])(简洁)或(高效)需要频繁合并/动态调整大小先转为List,操作完再转回数组。
2025-11-10 14:50:43
207
原创 Java字段隐藏:揭秘父子类属性之谜
Java 子类不能重写父类的字段,只能隐藏。字段访问取决于引用类型,不是实际对象类型。若需多态行为,请使用方法而非直接访问字段。尽量将字段设为private,并通过方法访问,以避免隐藏带来的混淆。
2025-11-10 14:41:44
400
原创 文件路径拼接的安全做法
问题回答是否会合并路径?✅ 会!就是用于路径拼接是否安全?✅ 是!配合startsWith可防路径穿越需要注意什么?⚠️ 确保ROOT_PATH和TEMP_PATH的值合理(避免TEMP_PATH以开头导致覆盖)
2025-11-10 10:45:57
327
原创 “直接更新(UPDATE)” vs “先删后增(DELETE + INSERT)” 的选择(一对多的情况下,要更新,一般选择先更新主表,然后删除从表,再添加从表的数据)
修改属性用 UPDATE,替换集合用 DELETE+INSERT(或更优的差异更新)。你是改变一个东西的状态→UPDATE你是扔掉旧的一整套,换一套新的→(且确保可以扔)如果你告诉我你的具体业务场景(比如:是在改订单主信息?还是改订单里的商品列表?),我可以给你更精准的建议!😊。
2025-11-10 10:33:23
263
原创 @JsonFormat 和 @DateFormat 有什么区别?
注解作用范围用途序列化/反序列化 JSON 时控制 Java 对象 ↔ JSON 字符串 的时间格式接收 HTTP 请求参数时控制 字符串参数 → Java 时间对象 的解析格式👉 它们一个管“出”,一个管“进特性包路径作用方向出进使用场景DTO 响应字段、Entity 字段Controller 参数、DTO 请求字段是否必须否(可全局配置)是(复杂类型必须)示例是你“输出”的脸面,是你“输入”的守门人。两者配合,才能让前后端时间传递既准确又美观。
2025-11-03 15:45:44
367
原创 JPA/Hibernate 实体类的基本结构的各种注解
你想做什么解决方案停用雪花算法删除改用数据库自增使用保持代码整洁删除不再使用的注解如果你的数据库支持自增主键(如 MySQL、SQL Server),IDENTITY是最简单、最稳妥的选择。
2025-10-31 17:06:27
406
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅