- 博客(65)
- 收藏
- 关注
原创 XML映射文件配置SQL语句
摘要:本文介绍了MyBatis XML映射文件中常用的动态SQL标签及其用法。包括<where>标签用于条件查询时自动处理"and/or"关键字;<set>标签在更新操作中自动去除多余逗号;<foreach>标签用于批量操作;以及<sql>和<include>标签实现SQL片段复用。这些标签能有效简化动态SQL编写,提高代码可维护性,示例涵盖条件查询、更新和删除等常见数据库操作场景。
2025-11-13 17:16:09
199
原创 mybatis基本操作-crud
本文介绍了MyBatis框架中动态参数传递的实现方式。通过#{参数名}占位符实现方法参数到SQL语句的传递,对比了预编译与未预编译SQL的性能差异和安全性问题。文章详细演示了增删改查操作的具体实现,包括主键返回(@Options注解)、字段映射问题解决方案(别名、注解、驼峰命名配置)以及条件查询中的字符串拼接处理。特别强调了concat函数拼接字符串的安全方案优于${}方式,可有效防止SQL注入。配置部分展示了MyBatis日志输出和驼峰命名自动映射的开启方法。
2025-11-06 20:34:24
395
原创 Mybatis基本入门及上手
Mybatis是一个简化JDBC开发的持久层框架,通过注解方式实现数据库操作。使用流程包括:1)引入依赖;2)在Spring Boot配置文件中设置数据库连接信息;3)创建实体类(如User)封装数据;4)使用@Mapper注解定义接口,通过@Select等注解编写SQL语句。运行时框架自动生成实现类,并将查询结果映射为实体对象。测试时通过@Autowired注入Mapper接口直接调用方法即可操作数据库,无需手动编写实现类,大大简化了数据库访问层的开发。
2025-11-01 16:31:43
157
原创 MySQL--索引
摘要:数据库索引是一种以空间换时间的数据结构,用于提升查询效率。B+树作为主流索引结构,具有三大特点:层级少、节点存储量大、叶子节点有序连接。主键索引(性能最优)和唯一索引会在创建主键或唯一约束时自动生成,分别确保数据唯一性。合理使用索引能显著提高数据库查询速度,但需权衡其带来的存储空间消耗。
2025-11-01 10:36:50
133
原创 web--请求响应、分层解耦
本文介绍了Web开发中的BS与CS架构区别,SpringBoot参数接收方式,以及IOC容器与依赖注入原理。重点解析了@Autowired、@Qualifier和@Resource注解的使用场景与区别,通过支付服务案例展示了多实现类情况下的依赖注入解决方案。文章还涉及分层架构设计、统一响应处理等核心概念,为SpringBoot开发提供了参数接收和组件管理的实用指导方案。
2025-10-30 10:39:26
674
原创 HTTP协议概述
HTTP协议是客户端与服务器通信的基础,由请求和响应两部分组成。请求协议包含请求行(方法/路径/版本)、请求头(如User-Agent解决兼容性)和请求体(POST特有);响应协议包括响应行(状态码)、响应头和响应体。状态码分为1xx-5xx,常见如200(成功)、404(未找到)。该协议规范了数据交互格式,确保通信可靠性。
2025-10-26 20:23:32
166
原创 Java21运行springboot报错
摘要:在使用Maven管理依赖运行SpringBoot项目时,出现Gradle构建错误提示。解决方法:1) 确认创建项目时选择的是Maven而非Gradle;2) 在IDE设置中正确配置Maven和Gradle工具。该问题通常是由于项目构建工具选择不当导致的,通过检查并调整构建工具配置即可解决。
2025-10-23 10:50:28
194
原创 管理和构建Java项目的工具--Maven
Maven是一个项目管理和构建工具,通过坐标系统统一项目结构,自动管理依赖关系。它支持直接依赖和间接依赖,可通过exclusions标签排除特定依赖,并使用scope标签控制依赖范围。Maven采用标准化的生命周期管理,将构建过程抽象为三大生命周期,各阶段按顺序执行并由插件实现具体功能。主要功能包括自动下载jar包、依赖传递管理以及项目构建自动化,为Java项目提供统一的标准结构。
2025-10-21 11:45:59
178
原创 Javaweb--Vue
Vue框架核心功能演示:包含插值表达式、常用指令(v-bind/v-model属性绑定、v-on事件绑定、v-if/v-show条件渲染、v-for列表渲染)以及Vue生命周期中的mounted方法使用示例。通过实例展示Vue的数据绑定和DOM操作特性。
2025-10-08 23:35:55
182
原创 javaweb--JavaScript
本文介绍了JavaScript的基本语法与应用。主要包括:1)脚本引入方式;2)变量声明(var/let/const)及数据类型;3)运算符与类型转换;4)函数定义;5)JS对象(数组、字符串、自定义对象及JSON转换);6)BOM对象(Window、Location等);7)DOM操作获取元素;8)事件监听机制。重点讲解了变量作用域、===与==区别、定时器使用等特性,并提供了从基础语法到浏览器对象操作的系统性说明。
2025-10-08 17:17:30
389
原创 Javaweb
本文介绍了前端开发中HTML、CSS和JavaScript的基础知识与应用。HTML负责网页结构,通过标签定义内容;CSS控制样式,包括颜色、字体等表现;JS实现交互功能。重点讲解了HTML标签使用规范(如不区分大小写)、CSS三种引入方式(行内/内嵌/外联)以及样式优先级规则(id>class>元素)。示例展示了新闻页面的实现,包括图片路径设置、标题样式、超链接属性等。还涉及了盒子模型、表格和表单等页面布局技术,为前端开发提供基础指导。
2025-09-29 17:10:58
398
原创 MySQL--事务
事务是一组操作的集合,具有ACID特性(原子性、一致性、隔离性、持久性)。事务可通过commit提交或rollback回滚,提交方式分为手动和自动。并发事务可能导致脏读、不可重复读和幻读问题,MySQL通过四种隔离级别控制并发问题(默认可重复读)。隔离级别越高数据越安全但效率越低,可通过session或global设置范围。理解事务特性与隔离级别对保证数据一致性至关重要。
2025-09-17 17:30:57
246
原创 MySQL多表查询笔记
SQL连接查询包括内连接和外连接。内连接返回两表交集,外连接分为左外连接(返回左表全部记录及匹配右表记录)和右外连接(返回右表全部记录及匹配左表记录)。自连接用于表内数据关联查询,需使用别名区分。联合查询可将多个查询结果合并输出。这些连接方式能灵活处理不同表间数据关系,满足复杂查询需求。
2025-09-08 23:54:29
146
原创 MySQL约束
本文概述了数据库约束的作用及类型。约束是作用于表中字段的规则,可在创建或修改表时添加,用于保证数据的正确性、有效性和完整性。重点介绍了外键约束,它建立表间联系确保数据一致性,其中子表含外键,父表为关联表。文章还说明了约束触发机制,如NOT NULL报错时MySQL不会申请主键,而主键冲突时主键已创建完成。最后提及了外键的删除更新行为实现方式。(149字)
2025-09-08 17:33:58
184
原创 MySQL函数
摘要:本文介绍了字符串函数select的应用示例,数值函数的具体案例,以及日期函数datediff的使用方法(计算两时间差值)。同时展示了流程函数的实用案例,帮助理解函数在不同场景下的灵活运用。最后对各类函数的特点进行了简要总结。
2025-08-31 11:01:23
158
原创 MySQL--SQL
本文系统介绍了SQL语法的主要分类及操作。包括数据定义语言(DDL)的库表创建、修改删除;数据操作语言(DML)的增删改查;数据查询语言(DQL)的基本查询、聚合函数、分组排序等;以及数据控制语言(DCL)的用户权限管理。特别说明了UTF8MB4字符集对中文字符的支持,并演示了MySQL图形化工具DataGrip的基本操作。全文涵盖了SQL从数据库定义到数据操作的完整流程,为数据库开发提供了实用参考。
2025-08-31 10:28:10
365
原创 MySQL基础理解入门
本文介绍了MySQL的两种进入方式:1)通过控制台命令"net start mysql80"启动服务,再使用"mysql -u root -p"登录;2)通过编程程序连接。同时提及了MySQL作为关系型数据库的三大核心概念,包括表结构、SQL语言和数据关系,这些特性使其成为广泛应用的数据管理系统。
2025-08-30 15:37:58
253
原创 Java动态代理
动态代理是一种无侵入式扩展代码功能的技术。它通过定义接口包含目标方法,由代理对象实现接口并拦截方法调用,从而在不修改原始代码的情况下添加额外功能。关键步骤包括:1) 定义业务接口;2) 创建调用处理器;3) 生成代理实例。这种设计实现了功能解耦,常用于日志记录、权限校验等横切关注点的处理。相比静态代理,动态代理更加灵活,能自动为多个接口生成代理类。
2025-08-30 11:39:13
210
原创 Java反射
本文简要介绍了Java反射机制的使用方法,主要包括获取Class对象的三种方式(forName、类名.class、对象.getClass)以及如何通过反射获取构造方法、成员变量和成员方法。重点说明了如何通过临时取消权限校验来访问私有构造方法,并介绍了反射获取对象信息(如权限修饰符、参数等)的基本操作流程。文章概括了反射编程的核心要点,包括从源代码阶段到运行阶段的完整反射操作过程。
2025-08-30 11:02:15
175
原创 计算机--网络编程
网络编程三要素包括IP地址(IPv4/IPv6)、端口号和协议(UDP/TCP)。UDP协议通过DatagramSocket实现单播/组播/广播通信,接收时receive方法会阻塞。TCP协议需要建立连接(三次握手)和断开连接(四次挥手),处理中文数据时需转换字节流为字符流,可使用缓冲流提高效率。两种协议各有特点:UDP无连接但效率高,TCP可靠但开销大。
2025-08-30 10:28:50
259
原创 Java多线程
多线程编程通过并发和并行机制提升程序效率,主要实现方式包括继承Thread类、实现Runnable和Callable接口。关键特性涉及线程优先级、守护线程、生命周期管理及线程安全问题,通过同步代码块、同步方法和Lock锁解决资源共享问题。典型应用场景包括生产者-消费者模型(可用阻塞队列实现)和线程池技术(含四种拒绝策略)。线程状态分为新建、就绪、阻塞、等待、计时等待和终止六种状态,开发时需注意死锁风险及wait/notify机制的使用规范。
2025-08-23 12:28:46
267
原创 Java配置文件
properties是Java中用于处理配置文件的类,继承自Hashtable<Object,Object>,但不属于泛型类,创建时无需指定泛型类型。虽然可存储任意对象,但实际开发中通常只存储字符串类型的键值对。它与IO流配合使用,通过load()方法读取配置文件,store()方法写入数据,实现配置信息的持久化存储和读取。这种特性使其成为处理属性文件的理想选择。
2025-08-19 22:16:22
173
原创 Java高级流
本文摘要:文章介绍了Java中转换流、序列化流、打印流及压缩/解压缩流的使用场景和实现方法。转换流实现字节流与字符流转换,支持指定编码读写;序列化流通过Serializable接口实现对象序列化,建议自定义版本号防止冲突;打印流提供格式化的输出功能;压缩/解压缩流将文件/文件夹处理为ZipEntry对象进行压缩解压操作。各类流操作均包含具体实现流程和注意事项。
2025-08-14 14:33:47
180
原创 Java-动态数组
本文实现了一个Java动态数组(Array)类,支持自动扩容和多种遍历方式。主要功能包括:1) 动态扩容机制,当数组满时自动扩容为原大小的2倍;2) 提供addLast()、add()方法实现末尾添加和指定位置插入元素;3) 支持迭代器遍历、函数式forEach遍历和Stream流遍历三种方式;4) 实现删除指定位置元素的功能。该动态数组通过System.arraycopy高效处理元素移动,并实现了Iterable接口使其支持增强for循环。初始化容量为8,当元素数量达到容量时自动扩容,保证操作的便捷性和高
2025-08-13 17:34:41
103
原创 Java缓冲流
字节缓冲流通过内置8192字节缓冲区提高I/O性能,支持单字节和字节数组读取。字符缓冲流则提供专有的字符处理方法,包括数据输入输出功能。这两种缓冲流都通过减少直接I/O操作次数来优化性能,其中字节流适用于二进制数据,字符流专为文本处理设计。缓冲机制是提升Java I/O效率的核心技术。
2025-08-12 22:01:51
216
原创 IO流Part1练习题
摘要:本文展示了三个Java文件操作示例:1) 递归复制目录及文件,使用FileInputStream和FileOutputStream实现文件拷贝;2) 简单的文件加密,通过异或运算实现;3) 文件内容排序处理,包括读取、排序(使用ArrayList或Stream API)和重写文件内容。这些示例涵盖了文件I/O、递归操作、数据加密和排序等常见文件处理场景,均遵循"打开-处理-关闭"的资源管理原则。
2025-08-12 13:52:55
156
原创 Java-IO流-Part1
摘要: IO流是Java中用于文件读写的数据传输解决方案,分为输入/输出流和字节/字符流。字节流通过FileInputStream/FileOutputStream操作,需注意文件存在性检查和资源释放(close)。字符流基于字节流+字符集(如UTF-8),专用于文本文件,避免乱码。关键点包括:字节流写入时支持续写(true参数)和换行符(\r\n);读取时循环判断read()返回-1;字符流通过read()方法适配多字节编码。异常处理推荐try-catch,操作后必须关闭流以释放资源。乱码问题需确保编码一
2025-08-12 11:19:24
309
原创 Java-file类
本文介绍了Java中File类的基本用法。File类提供了多种构造方法(路径构造、父路径+子路径构造等)来创建文件对象。主要成员方法包括:判断文件/目录是否存在、获取文件属性;创建/删除文件目录;获取目录内容并遍历(listFiles()等)。还介绍了文件过滤器的使用以及文件处理的常见编程模式。这些功能为Java文件操作提供了基础支持。
2025-08-09 17:35:26
155
原创 Javase-异常
本文介绍了Java异常处理机制,包括异常分类(Error和Exception)、异常的作用(bug定位和方法返回值)及两种处理方式(JVM默认处理和捕获处理)。重点说明了捕获异常时需注意多异常处理的顺序规则(父类异常需置后)以及未被捕获异常的处理流程。最后提及了异常常用方法和自定义异常的实现方式,为程序健壮性提供了解决方案。
2025-08-08 21:10:37
231
原创 Java方法引用
方法引用是Java中简化函数式接口实现的语法,要求满足4个条件:函数式接口、方法存在、参数返回值匹配、功能满足需求。主要有4种引用格式:1)静态方法(类名::静态方法);2)成员方法(需注意this使用限制);3)构造方法(类名::new);4)数组构造(数据类型[]::new)。特殊规则:类名引用成员方法时,被引用方法的参数需与抽象方法第二个参数开始保持一致。核心作用是为函数式接口提供简洁的实现方式。
2025-08-07 17:06:21
296
原创 Stream流
Java Stream流操作流程分为三步骤:获取流、中间操作和终结操作。获取流可通过集合(单列/双列)、数组或零散数据等方式。中间操作包括filter过滤、limit/skip截取、distinct去重、concat合并流和map转换数据类型等,这些方法返回新流不影响原数据。终结操作通过toArray转数组或collect收集到集合(List/Set/Map)。注意中间操作需链式编程,且流只能使用一次。Stream操作不改变源数据,提供高效的数据处理方式。
2025-08-06 11:35:51
297
原创 不可变集合
摘要:不可变集合通过特定创建方式确保数据安全,防止被外部修改。List、Set和Map分别使用.of()方法创建,其中Map.of()最多支持10个键值对,更多数据需用Map.ofEntries()。copyOf()方法能智能处理集合转换:传入不可变集合直接返回,可变集合则转为不可变副本。这种机制既保证了数据安全性,又提供了灵活的操作方式。
2025-08-05 23:27:42
170
原创 Java可变参数、Collections
摘要:可变参数允许方法接收不定数量的参数,其本质是一个数组。使用时需注意:每个方法最多一个可变参数,且必须放在形参列表末尾。Collections工具类提供多种常用API来操作集合。这两种特性都能简化代码编写,提高灵活性。
2025-08-04 12:17:45
180
原创 泛型相关内容
泛型是Java中类型安全的集合实现机制。其核心优势在于编译时类型检查,避免强制类型转换。泛型类、方法、接口允许定义不确定的类型参数,提高代码复用性。泛型擦除机制确保与旧版本兼容。通配符(?)提供了更灵活的类型约束:? extends E限定子类,? super E限定父类。这种设计既保证了类型安全,又通过继承关系扩展了参数接收范围,特别适用于需要处理多种相关类型的集合操作场景。
2025-08-01 10:39:37
229
原创 Java集合进阶
Java集合框架分为单列和双列集合体系。单列集合中,List系列有序可重复,Set系列无序不重复,各有三种遍历方式(迭代器、增强for、lambda)。双列集合Map以键值对存储,键不可重复,提供键找值、键值对和lambda三种遍历方法。具体实现类如HashSet、LinkedHashSet、TreeSet和HashMap、LinkedHashMap、TreeMap各具特性,适用于不同场景,HashSet基于哈希表快速查询,TreeSet可自然排序,LinkedHashSet保持插入顺序等。
2025-07-30 11:25:29
239
原创 操作数组的工具类--Arrays
Java数组操作常用方法总结:toString可将数组转为字符串;binarySearch用于查找元素位置;copyOf和copyOfRange实现数组拷贝,支持扩容和截取;fill用于数组填充;sort支持默认升序和自定义排序规则(需使用接口实现类或匿名内部类)。这些方法为数组处理提供了便捷功能。
2025-07-30 10:11:40
180
空空如也
大一新生迷茫求指导🆘
2025-03-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅