- 博客(44)
- 收藏
- 关注
原创 将ssm聚合项目部署到云服务器上
打开项目源码中的父项目 ev_parent 的 pom.xml 文件,检查各子模块的依赖配置是否正确,确保 Spring、SpringMVC、MyBatis 等第三方组件的版本统一(如 spring-core:5.2.0.RELEASE),避免版本冲突。使用 Navicat 16 连接 MySQL 数据库,打开 Navicat,点击 “连接”,选择 MySQL,输入连接名称、主机名(数据库服务器 IP)、端口(默认 3306)、用户名(root)、密码,点击 “测试连接”,连接成功后点击 “确定”。
2025-08-06 15:51:35
575
原创 雪花算法原理深度解析
结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0。1位标识:由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0,所以这第一位都是0。这里的的开始时间截,一般是我们的id生成器开始使用的时间,由我们程序来指定的,
2025-07-27 14:45:01
876
原创 MyBatis-Plus IService详解与示例代码解析
是 MyBatis-Plus 提供的顶级服务接口,封装了常用的 CRUD 操作、批量处理、链式查询等功能,旨在简化数据库操作代码。以下从三个维度进行解析。
2025-07-27 09:24:25
637
原创 Java String、StringBuffer 和 StringBuilder 的区别
String 类型和 StringBuffer 的主要性能区别:String 是不可变的对象, 因此在每次对 String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,性能就会降低。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。
2025-07-25 21:58:53
528
原创 SpringBoot学习路径二--Spring Boot自动配置原理深度解析
创建文件定义自己的自动配置类使用合适的条件注解@Bean在SPI机制:通过实现扩展点加载条件评估:通过Condition接口实现条件化配置延迟加载:通过实现配置类的延迟处理配置优先级:通过和@Order控制配置顺序Spring Boot的自动配置机制通过这种灵活的条件化方式,既保证了"约定优于配置"的便利性,又提供了足够的灵活性来覆盖默认行为。
2025-07-25 21:42:25
837
原创 SpringBoot学习路径--SpringBoot的简单介绍和项目搭建
在 Java 开发领域,Spring 框架无疑是一座举足轻重的里程碑。而 Spring Boot 的出现,更是让 Java 开发变得前所未有的简单高效。本文将带你全面了解 Spring Boot,从基础概念到实战操作,助你快速上手这一强大的开发框架。
2025-07-25 21:32:39
965
原创 正则表达式概述
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),是计算机科学中的一个概念。它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。正则表达式就像 JSON 一样,是一种通用的标准,被多种开发语言所支持,包括 Java、JavaScript、C、C++、C#、Python、SQL 等。在 Javaweb 项目中,正则表达式通常用于前端验证,所以我们接下来将以 JavaScript 为例来学习正则表达式。
2025-07-19 17:19:26
667
原创 AJAX概述
AJAX,全称异步 JavaScript 和 XML(Asynchronous JavaScript and XML),是一种用于创建快速动态网页的技术。它的核心思想是通过在后台与服务器进行少量数据交换,实现网页的异步更新 —— 也就是说,无需重新加载整个网页,就能对页面的某部分进行局部更新。(1)XHTML和CSS的基于标准的表示技术(2)DOM进行动态显示和交互(3)XML和XSLT进行数据交换和处理(4)进行异步数据检索(5)Javascript将以上技术融合在一起。
2025-07-19 17:18:08
662
原创 Cookie 与 Session概述
Cookie,翻译成中文是小甜点、小饼干的意思。在 HTTP 协议中,它代表着服务器送给客户端浏览器的 “小甜点”。实际上,Cookie 就是由一个键和一个值构成的信息,会随着服务器端的响应发送给客户端浏览器。客户端浏览器会将其保存起来,等下一次访问该服务器时,再把 Cookie 发送回服务器。Session 也是域对象之一,其范围在一个会话范围内有效,拥有和等系列方法。在一个会话内共享一个 session 对象,可保存会话内的数据,如当前用户的信息。
2025-07-17 15:58:44
689
原创 Servlet概述
Servlet(Server Let)是运行在 Web 服务器中的小型 Java 程序,主要作用是处理用户请求。当客户端发出请求后,由 Web 服务器(如 Tomcat)找到对应的 Servlet 进行处理。Servlet:处理用户请求的核心组件Filter(过滤器):用于对请求和响应进行拦截和处理Listener(监听器):基于观察者模式,监听 Web 应用中的事件其中,Servlet 是最基础、也是必须 100% 掌握的组件。
2025-07-17 15:38:37
956
原创 Git版本控制完全指南:从入门到精通
在如今的软件开发领域,版本控制工具是团队协作与代码管理的基石。而 Git,作为目前世界上最先进的分布式版本控制系统,早已成为开发者的必备技能。无论是个人项目还是大型团队协作,Git 都能高效地追踪代码变更、管理版本迭代、解决冲突问题。本文将从 Git 的起源讲起,带你全面掌握其核心概念、操作命令与使用方式。
2025-07-16 23:03:59
1028
原创 Spring学习路径-IOC机制
控制反转(Inversion of Control,IOC)是 Spring 框架的核心思想之一,其本质是将对象的创建和依赖关系的管理从程序代码中解耦出来,交给 Spring 容器(Container)负责。传统开发模式:对象 A 需要使用对象 B 时,由 A 自己创建 B 的实例(如new B()),导致 A 与 B 强耦合。IOC 模式:对象 A 的依赖对象 B 由 Spring 容器创建并注入到 A 中,A 无需关心 B 的创建细节,只需被动接受即可。
2025-05-22 17:28:57
596
原创 理解Java泛型
与使用 Object 对象代替一切引用数据类型对象这样简单粗暴方式相比,泛型使得数据类型的类别可以像参数一样由外部传递进来。它提供了一种扩展能力,更符合面向对象开发的软件编程宗旨。当具体的数据类型确定后,泛型又提供了一种类型安全检测机制,只有数据类型相匹配的变量才能正常的赋值,否则编 译器就不通过。所以说,泛型一定程度上提高了软件的安全性,防止出现低级的失误。泛型提高了程序代码的可读性。
2025-05-20 16:38:36
523
原创 ssm项目环境搭建
Spring:核心容器负责 Bean 管理与依赖注入(DI),通过 AOP 实现事务管理、日志记录等功能,简化组件间协作。Spring MVC:基于 MVC 模式的 Web 框架,分离控制器(Controller)、模型(Model)和视图(View),优化前端请求处理流程。MyBatis:ORM(对象关系映射)框架,通过 XML 或注解配置实现 SQL 映射,简化 JDBC 操作,提升数据库访问效率。优势:轻量级、灵活性高、社区资源丰富,适用于中大型 Web 项目开发。
2025-05-20 16:38:02
746
原创 事务(理解)与数据库连接池
事务是数据库提供的一个特性。事务:组成各个数据的执行的单元,要么都成功,要么都不成功。举例:转账的功能,冠希给美美转1000元钱。使用事务先给冠希扣除掉1000元再给美美加上1000元事务结束了。
2025-05-11 13:36:52
903
原创 自定义映射ResultMap —— 一对多、多对多
如果想查询 select u.*,a.money from user u left join account a on u.id = a.uid 语句的内容。在UserMapper接口中定义方法。在User类中添加List的属性。1.执行SQL语句,创建表结构。2.编写JavaBean。
2025-05-02 14:43:45
187
原创 超级详细的 Maven 教程(基础 + 高级)
Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。什么是理想的项目构建?高度自动化,跨平台,可重用的组件,标准化的流程什么是依赖?为什么要进行依赖管理?自动下载,统一依赖管理A1.0 依托于 B 2.0 依托于 C3.0什么是依赖管理对第三方依赖包的管理,可以连接互联网下载项目所需第三方jar包。对自己开发的模块的管理,可以像引用第三方依赖包一样引用自己项目的依赖包。什么是项目构建。
2025-05-02 14:21:28
1078
原创 自定义映射resultMap —— 一对一、多对一
resultMap标签下可以创建六种标签,<id>用于添加数据库表中主键的映射关系,<result>用于添加除了主键之外的其他列名的映射关系,此外还有<association>、<collection>、<discriminator>、<consturctor>四种标签,之后会讲解它们的作用,2、如果字段名和实体类中的属性名不一致的情况下,但是字段名符合数据库的规则(使用_),实体类中使用的属性名符合java的规则(使用驼峰命名),可以在MyBatis的核心配置文件中设置一个全局配置信息。
2025-03-21 17:42:54
955
原创 Mybatis的各种查询功能
1.1、搭建module:10mybatis${}的本质就是字符串拼接,采用sql拼接,无法防止sql注入#{}的本质就是占位符赋值 ,采用预编译 防止sql注入1.2、单个字面量类型的参数 int i = 1;如果mapper接口中的方法参数为单个的字面量类型,此时可以使用#{}和${}以任意的名称获取参数的值,如果使用${},注意需要手动添加单引号。1.3、多个字面量类型的参数。
2025-03-21 17:07:13
1158
原创 mysql事务
本文详细解释了事务的概念,包括其原子性、持久性、隔离性和一致性,以及在转账操作中的应用。讨论了事务的四大特性,隔离级别的概念和MySQL中事务的提交与回滚,以及并发问题如脏读、不可重复读和幻读。最后介绍了不同隔离级别的含义和对一致性的保障。
2025-03-20 19:47:12
829
原创 Mybatis简介和项目环境搭建
MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。
2025-03-20 01:32:36
898
原创 深入了解 MyBatis 逆向工程
MyBatis 逆向工程,简单来说,就是根据数据库中的表结构,自动生成对应的 Java 实体类、Mapper 接口以及 Mapper XML 文件。以往,开发者需要手动编写这些代码,不仅耗时费力,还容易出错。有了逆向工程,只需进行一些配置,就能快速生成这些基础代码,让开发者将更多精力放在业务逻辑的实现上。。
2025-03-20 01:02:38
1146
原创 手写一个简易版的tomcat
Tomcat 是一个广泛使用的开源 Servlet 容器,用于运行 Java Web 应用程序。深入理解 Tomcat 的工作原理对于 Java 开发者来说是非常有价值的。本文将带领大家手动实现一个简易版的 Tomcat,通过这个过程,我们可以更清晰地了解 Tomcat 是如何处理 HTTP 请求和响应的。根据以上功能,我们创建如下图所示的包--tomcat类的作用是启动整个tomcat容器--webapp包下存放你自己创建的servlet动态资源。
2025-03-11 19:10:44
1071
1
原创 HTTP 协议简介
通过了解 HTTP 协议的基本概念、特点、工作流程、请求方法、状态码以及发展历程,我们能够更好地理解互联网的运行机制,为开发高效、稳定的网络应用提供坚实的基础。随着互联网技术的不断发展,HTTP 协议也在持续演进,未来它将继续为我们带来更优质的网络体验。
2025-03-06 17:23:37
1852
原创 Tomcat介绍
通过以上步骤,你已经成功安装和部署了 Tomcat,并可以将自己的 Java Web 应用部署到 Tomcat 上进行测试和运行。在实际开发中,还可以根据项目需求对 Tomcat 进行进一步的配置和优化,如调整线程池大小、配置虚拟主机等。希望本文能帮助你顺利开启 Java Web 开发之旅,享受 Tomcat 带来的便捷与高效。
2025-02-27 20:06:56
747
原创 java基础——抽象类与接口
抽象类是一种不能被实例化的类,它为子类提供了一个通用的模板。抽象类可以包含抽象方法和具体方法。抽象方法是没有方法体的方法,它只定义了方法的签名,具体的实现需要由子类来完成。在 Java 中,使用abstract关键字来定义抽象类和抽象方法。接口是一种完全抽象的类型,只包含抽象方法和常量。在 Java 8 及以后的版本中,接口还可以包含默认方法和静态方法。默认方法提供了接口方法的默认实现,子类可以选择是否重写;静态方法则可以直接通过接口名调用。使用interface关键字来定义接口。重写。
2025-02-18 13:29:17
739
原创 java断点调试(debug)
断点调试是指在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。进行分析从而找到这个Bug断点调试是程序员必须掌握的技能。断点调试也能帮助我们查看java底层源代码的执行过程,提高程序员的Java水平。
2025-02-15 21:19:33
1346
原创 git版本控制工具介绍
分布式版本控制中,每个开发者的本地仓库都是一个完整的版本库,包含了项目的所有历史记录和版本信息。所有的版本数据都集中管理,开发者需要与中央服务器进行交互来进行版本控制操作(SVN),便于团队协作,但如果中央服务器出现故障,所有的版本会有丢失风险。通过创建不同的分支,开发人员可以在各自的分支上独立地进行开发、测试等工作,互不干扰。创建好后取SSH地址,创建一个用于接收远程仓库的文件夹,输入克隆命令:git clone 输入你自己的SSH地址,刚开始创建仓库的小伙伴会遇到警告,因为仓库中没有文件,不必理会。
2025-02-14 21:32:48
1671
2
原创 java反射机制
Java 反射机制是 Java 语言中的一个重要特性,它允许程序在运行时获取和操作类的信息,包括类的构造函数、方法、字段等,并且能够动态地创建对象、调用方法和访问字段。
2025-02-13 23:29:18
826
原创 java集合详解
Java 集合框架是 Java 提供的一组用于存储和操作数据的类和接口,它位于java.util包中。集合框架提供了丰富的数据结构和算法,能够帮助开发者更高效地处理和管理数据。以下将从集合框架的体系结构、主要接口和类、常用操作等方面进行详细介绍。
2025-02-12 22:45:17
982
原创 java异常处理
在 Java 中,还可以自定义异常类来满足特定的业务需求。自定义异常类通常继承自Exception类(检查型异常)或类(非检查型异常)。// 自定义异常类try {// 可能会抛出MyException的代码throw new MyException("这是一个自定义异常");// 处理自定义异常System.out.println("捕获到自定义异常:" + e.getMessage());合理地使用 Java 异常机制可以使程序更加健壮、易于维护和调试。
2025-02-12 19:38:39
1304
原创 java中的包装类
自动装箱:指的是将基本数据类型自动转换为对应的包装类对象。例如,把int类型的值直接赋给Integer类型的变量,Java 编译器会自动完成从int到Integer的转换。自动拆箱:与自动装箱相反,它是将包装类对象自动转换为对应的基本数据类型。例如,把Integer类型的对象直接赋给int类型的变量,编译器会自动将Integer对象转换为int值。
2025-02-11 23:57:37
693
原创 == 和 equals方法详解
=运算符对于基本数据类型,比较的是值是否相等。对于引用数据类型,比较的是引用是否指向同一个对象。equals方法在Object类中,默认比较的是引用是否相等。许多类会重写equals方法,以实现基于对象内容的比较。在使用equals方法时,要注意对象是否重写了该方法,以及重写后的比较规则。
2025-02-11 21:55:12
690
原创 java中的Object类
在 Java 中,Object,也就是说ObjectObject。如果一个类没有显式地声明继承自某个父类,那么它默认继承自 Object类。下面从几个方面详细介绍 Object。
2025-02-11 19:44:28
270
原创 java基础——多态的作用、概念及用法理解
多态是面向对象的重要特性,简单点说:“一个接口,多种实现”,就是同一种事物表现出的多种形态。编程其实就是一个将具体世界进行抽象化的过程,多态就是抽象化的一种体现,把一系列具体事物的共同点抽象出来, 再通过这个抽象的事物, 与不同的具体事物进行对话。多态的本质是父类引用指向子类对象,多态允许将子类的对象当作父类的对象使用,某父类型的引用指向其子类型的对象,调用的方法是该子类型的方法。这里引用和调用方法的代码编译前就已经决定了,而引用所指向的对象可以在运行期间动态绑定。
2025-02-11 13:28:37
1351
原创 Java中的继承:理解、应用与最佳实践
在面向对象的编程语言中,继承是一种重要的概念。Java作为一门流行的编程语言,继承是其面向对象编程(OOP)的核心特性之一。本文将详细介绍Java中的继承概念、工作原理以及最佳实践。
2025-02-09 23:22:12
407
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人