- 博客(37)
- 收藏
- 关注
原创 MyBatis指定构造
MyBatis通过默认无参构造创建对象后使用反射赋值,但也可以通过resultMap中的constructor标签指定构造方法。构造参数使用idArg(主键)和arg标签定义,未传入的字段仍会通过反射赋值。这种方式允许实体类使用带参构造器进行初始化,同时保持灵活的数据映射能力。<|end▁of▁sentence|>
2025-05-21 15:38:18
146
原创 MyBatis简单使用
本文介绍了MyBatis与MariaDB数据库的集成使用方式。主要内容包括:1) 添加依赖和数据库配置;2) Mapper接口定义及SQL语句映射;3) 参数传递方式(单参数和多参数);4) 结果映射的多种实现方案,包括字段别名、@Result注解映射、复用结果映射关系以及开启驼峰命名自动转换;5) XML配置方式的示例。文章提供了从基础配置到高级映射的完整示例代码,涵盖了MyBatis操作数据库的核心功能实现。<|end▁of▁sentence|>
2025-05-21 15:35:25
174
原创 MyBatis常用方法
为了提高代码的复用性和简洁性,可以将MyBatis的初始化操作封装到一个工具类MyBatisUtils中。该工具类通过静态代码块加载MyBatis配置文件并创建SqlSessionFactory,同时提供openSession方法用于获取SqlSession对象。通过这种方式,可以简化代码,避免重复的初始化操作。此外,文章还介绍了MyBatis的注解使用、数据库配置、Mapper接口的编写,以及selectMap、selectCursor和select等查询方法的使用。这些内容帮助开发者更高效地使用MyBa
2025-05-20 19:30:44
303
原创 Mybatis面向接口编程
本文介绍了如何在MyBatis中实现Mapper接口与映射文件的绑定。首先,在UserMapper.xml文件中,通过namespace属性将映射文件与UserMapper接口绑定,并在其中定义了一个insertUser的SQL语句。接着,创建了UserMapper接口,并确保接口中的方法名与映射文件中的SQL语句id一致。然后,在MyBatis配置文件中引入UserMapper.xml映射文件。最后,通过测试类MyBatisTest进行代码实现和测试。整个过程展示了MyBatis面向接口编程的基本步骤和配
2025-05-20 19:24:41
158
原创 MyBatis入门指南
MyBatis 是一个支持定制 SQL、存储过程及高级映射的持久层框架。本文介绍了如何使用 MyBatis 查询数据库中的 user 表数据。首先,创建 user 表并插入数据,接着导入 MyBatis 依赖,编写核心配置文件和 SQL 映射文件。然后,通过加载配置文件获取 SqlSessionFactory 对象,进而获取 SqlSession 对象执行 SQL 查询,最后释放资源。此外,还介绍了 MyBatis 的面向接口编程方式,通过定义 Mapper 接口与映射文件进行关联,并展示了如何传入参数进行
2025-05-20 18:21:38
988
原创 Java IO流进阶实战详解(含文件读写、拷贝、加密、字符集)
Java IO(输入输出)是我们日常开发中必不可少的一部分。无论是读写文件、传输数据、处理日志,IO 都是底层支持。在这篇博客中,我们将基于实际代码案例,从到FileReaderFileWriter全面解析 Java IO 的用法与底层原理,并完成以下内容:文件写入(字节/字符流)文件读取文件拷贝(大文件/小文件/文件夹)编码解码与乱码问题文件加密与解密。
2025-05-17 18:06:55
952
1
原创 IdeaVim配置指南
IdeaVim是 JetBrains 系列 IDE(如 IntelliJ IDEA, WebStorm, PyCharm 等)中的一个插件,让你在 IDE 里使用 Vim 的按键习惯,大大提升效率。安装方法:在 IDE 中打开设置(Settings)→插件(Plugins) → 搜索IdeaVim→ 安装并重启。
2025-05-06 22:45:19
979
原创 Java 多线程进阶:线程安全、synchronized、死锁、wait/notify 全解析(含代码示例)
Java 多线程的本质是对“共享资源 + 并发访问”下的一种控制与协作。理解 synchronized 的使用方式、死锁的本质、以及 wait/notify 的协作机制,能有效帮助我们写出更安全、灵活的并发程序。
2025-05-01 23:20:28
612
原创 Java 多线程进阶:什么是线程安全?
线程安全(Thread Safety)简单来说就是:在多个线程同时执行某段代码时,无论线程怎么调度、怎么交叉执行,都会得到正确的结果,不会出 bug。
2025-04-30 09:00:00
955
3
原创 Java 多线程基础:Thread 类详解
在 Java 编程中,线程是实现并发的重要工具。通过合理地使用 Thread 类,可以实现多任务并行处理,提升程序的响应能力和执行效率。本文围绕 Thread 类的核心功能展开,详细讲解了线程的创建、终止、等待、休眠等基本操作,同时介绍了如何获取当前线程实例以及线程可能处于的各种状态。文章旨在帮助读者打牢多线程基础,为后续掌握更复杂的并发控制机制(如线程池、同步锁、并发容器等)奠定坚实的理论基础。
2025-04-29 19:34:31
886
4
原创 Java多线程入门案例:实现Runnable接口
如何使用 Java 线程来实现并发执行。通过一个简单的示例,创建了一个实现 Runnable 接口的类 MyThread3,它在 run() 方法中包含一个死循环,每秒打印一次 "hello runnable"。同时,主线程也在 main 方法中以类似的方式执行,不停地打印 "hello main",展示了多线程的基本使用。
2025-04-28 11:07:00
326
原创 Java多线程入门案例详解:继承Thread类实现线程
通过一个简单实例,详细讲解了如何通过继承 Thread 类实现 Java 多线程。内容包括线程类的定义、run() 方法的实现、start() 方法与 run() 方法的区别、主线程与子线程的并发执行机制,以及程序运行效果分析。同时,文章指出了实际开发中需要注意的线程安全、异常处理与线程生命周期管理问题,并在最后提出思考题,引导读者深入理解多线程编程的核心概念。
2025-04-28 10:23:50
450
4
原创 JavaEE-多线程实战02
Runnable只管写任务,不管线程怎么执行。Thread既是线程本身,也能直接运行任务。推荐用 Runnable,因为更加灵活,避免继承带来的局限,可以更好地与线程池等高级功能结合。
2025-04-27 19:36:10
458
原创 JavaEE-多线程实战01
本文分析了一段使用 Java 多线程的示例代码。程序定义了一个继承自 Thread 类的自定义线程 MyThread2,在其 run() 方法中通过无限循环每秒打印一次 "hello thread"。主线程在启动子线程后,同样进入一个无限循环,每秒打印一次 "hello main"。通过调用 start() 方法,程序实现了两个线程的并发运行,分别独立执行各自的打印任务。本文还详细解释了线程启动、休眠、异常处理机制,以及运行时可能出现的输出交错现象。同时指出,该程序缺乏优雅终止机制,实际应用中应当设计合理的
2025-04-27 19:06:06
460
原创 IdeaVim 配置与使用指南
IdeaVim是 JetBrains 系列 IDE(如 IntelliJ IDEA, WebStorm, PyCharm 等)中的一个插件,让你在 IDE 里使用 Vim 的按键习惯,大大提升效率。安装方法:在 IDE 中打开设置(Settings)→插件(Plugins) → 搜索IdeaVim→ 安装并重启。
2025-04-27 09:13:27
1060
1
原创 Fedora 下 Hyprland 安装与基础配置
以上就是 Fedora 上 Hyprland 的基础配置教程。整体体验非常流畅炫酷,配置也不算复杂。如果大家有更多实用的优化方法,欢迎一起讨论交流!刚创的hyprland频道,欢迎加入->HYPR2025LD(QQ频道)
2025-04-26 23:26:02
269
1
原创 Linux 下的游戏指南 | 让你的 Linux 变成最强游戏平台!
1. Linux 诞生时的游戏基因《雷神之锤》(Quake)的“神助攻”1991 年,林纳斯·托瓦兹(Linus Torvalds)开发 Linux 内核时,曾公开表示自己受《雷神之锤》的启发——他为了在 PC 上玩这款游戏(当时需要 Unix 系统),决定自己写一个类似 Unix 的操作系统内核。(冷知识:Linux 的早期开发动力之一是想玩 3D 游戏!《波斯王子》的间接贡献。
2025-04-26 16:52:06
1126
1
原创 《多线程×时间管理大师》——程序员的并发修炼之路!
线程是操作系统调度的最小单位。简单来说,一个线程就是一个“执行流”,它可以和其他线程同时执行不同的任务。打个比方,如果一个公司去银行办理多个业务,单靠一个人(主线程)效率低下,不如多个员工同时处理各自的事务,这就像我们用多个线程来并发处理不同任务,提高程序效率。更好地利用多核 CPU 的资源提升 IO 密集型程序的响应能力相比多进程更加轻量和高效Java 多线程虽不易,但掌握核心概念之后,其实也没那么难。
2025-04-25 22:50:38
457
原创 Java算法01
其实这就好比操场跑步,如果你和另一个人都是相同速度,那么就永远也不可能相遇为什么最开始时快指针比慢指针多走一步?第一次判断时,slow 和 fast 是一样的,直接跳出循环,导致判断错误!先看这个代码再看这个代码。
2025-04-22 22:34:57
235
原创 《03-javaEE系列---线程》
1.线程是什么一个线程就是一个执行流(指的就是程序中的指令是按照什么顺序被执行的。你可以把它想象成做事情的流程图)。每个线程之间都可以按照顺序执行自己的代码,多个线程之间“同时”执行着多份代码。举个日常生活中的例子:想象你家里人做晚饭。比如:洗菜切菜炒菜煮饭摆盘只能一件事情做完,再做下一件。执行流是线性的。就像单线程程序。于是妈妈请了家里人(你和你弟弟)一起来帮忙:妈妈在切菜(线程A)你在洗菜(线程B)弟弟在煮饭 (线程C)
2025-04-22 10:10:08
1079
原创 《03-javaEE系列---多线程》
进程的概念多任务操作系统,希望系统能够同时运行多个程序。本质上来说进程是解决并发编程的问题的。在互联网发展的早期,web开发是用c语言来编写的服务器程序这是一种CGI的技术基于多进程的编程模式。服务器同一时刻会进行很多请求,针对每个请求,都会创建出一个进程。一旦这个请求处理完了,这个进程就销毁了。如果请求很多,意味着你的服务器就需要不停创建新的进程,也需要不停的销毁进程。频繁创建和释放。这样的开销是非常大的。进程在频繁创建和销毁的时候开销比较大,最关键的原因是资源的申请和释放。
2025-04-18 20:05:59
249
原创 《02-javaEE系列---进程(补充)》
进程是操作系统分配资源的基本单位。多任务操作系统(Windows、Linux、Android、iOS等)可以同时管理多个进程。单任务操作系统(如老式功能机)一次只能运行一个程序。优先级 = 系统默认 + 用户调整 + 进程类型 + 动态调整 + 特殊需求系统最后会综合这些因素,给每个进程打分(优先级),然后调度器根据优先级高低,来安排谁上CPU、谁排队等。
2025-04-15 09:00:00
505
原创 《02-javaEE系列---进程》
可以把内存想象成一个旅馆,这个旅馆里面有很多个房间,所谓的申请内存,就是你跟老板说开一个房间,这时候就是申请到了一个空的房间号(这个房间号是我们不能确定的)。注意,这里讲的和我们之前所说的同时运行是不冲突的,(CPU频率往往都是GHz,一秒钟能够执行几十亿条指令的,由于执行速度太快,我们肉眼感知不到),通过一个简单的不重复的整数来进行区分的,系统会保证pid的唯一性,针对某个进程来操作,就可以通过pid,pid一般是从1开始累加的。整个系统的内存不是我们决定的,
2025-04-07 20:43:51
727
原创 <<01javaEE系列---入门>>
cpu频率cpu频率描述单个cpu核心工作的速度。严格来将叫做时钟周期。如果是超线程,那就表示超线程后的单核。通常可以把频率当作每秒执行的指令数,这只是粗略估计。我们的cpu频率都是以GHz为单位的,相当于每秒执行亿次指令,这个速度很快。睿频技术cpu的频率发生动态变化,主要取决于当前任务多不多,因为频率过高会更耗电。衡量一个cpu的单核性能,既要看基础频率(下限),也要看最大睿频(上限)为啥需要缓存?这是因为在冯诺依曼架构下,内存的速度(频率)达不到cpu的速度(频率)。
2025-03-29 20:01:58
496
原创 MySQL基本操作
一次插入多行记录,比一次插一条要快不少,因为后者涉及到多次网络交互,虽然体积变大,但是相比于网络交互的影响还是少些的,就好比丢垃圾那么datetime类型该如何插入呢?可以通过一个固定格式字符串来表示时间日期例如:insert into student values(“2000-01-01 12:00:00”);
2025-03-24 21:45:28
312
原创 初识Java泛型
泛型是java中的特性,主要用于在定义类、接口、方法时,不指定具体的类型,而是使用一个占位符来表示类型。在编译时进行类型检查,这样做的好处是提高代码的复用性和安全性。以上述代码来回答:通过擦除机制后,返回的Object数组里面可能存放的是任何数据类型,直接转给Integer类型数组,编译器会认为这是不安全的。因此,我们引出泛型。存放字符串会报错,因为编译器会帮我们在存放数据的时候进行类型检查。我们是否可以实现一个类里面包含一个数组用于存放任何类型的数据?类名后的<T>代表占位符,表示当前类是一个泛型类。
2025-02-27 20:19:05
280
原创 普利茅斯主题
普利茅斯(Plymouth) 是一个用于显示系统启动进程的软件,通常在类 Unix 操作系统中使用。它可以在操作系统启动时显示一个友好的图形界面或动画,以掩盖可能看起来不友好的启动信息,从而改善用户体验。普利茅斯(Plymouth) 可以配置为显示各种主题,包括图形、动画或简单的文本信息。在启动过程中,普利茅斯(Plymouth) 会在加载内核和初始化系统期间显示一个启动画面。
2025-02-23 12:04:53
271
原创 java数组
这样我们要插入的那个位置就空出来了(并不是那个位置是空的,那个位置的元素与覆盖前的元素相同,这个位置已经移位,我们随时可以将它覆盖,不会丢失数据,所以我们可以认为这个位置是空的),现在我们可以将元素插进去,假设是3。需要注意的是,最后一位(也就是数组下标为8的位置)的元素不变,后续要用到这个位置时,我们直接覆盖好了。正是因为数组的内存地址是连续的,所以我们在增加和删除元素时,难免要移动其他元素的地址。跟上面同理,不过步骤与上述相反,我们要从删除位置后的元素开始往前移动,直到最后一个元素。
2025-02-22 14:52:35
304
原创 Java继承和多态
继承:用于代码的复用和扩展,通过extends关键字来实现多态:同一个方法调用在不同的对象上可以有不同的实现方式。通过方法重写来实现。
2025-01-31 17:07:45
460
原创 我的第一篇博客:开启我的编程之旅
我是一个充满好奇心和求知欲的初学者,对技术世界充满向往。虽然目前还处于学习的起步阶段,但我对编程的热情非常高。生活中,我喜欢挑战新事物,享受从无到有的创造过程。编程对我来说,不仅是一种技术,更是探索世界的一种方式。作为一家全球顶尖的科技公司,Google 拥有创新的技术和开放的文化,同时也非常注重员工的成长与发展。我希望未来有机会加入这样的团队,与世界级的人才一起工作,为用户提供更好的产品和体验。今天,我想通过这篇文章介绍一下自己,并分享我学习编程的计划和目标。编程对我而言,是打开未来职业大门的一把钥匙。
2024-12-10 21:05:25
384
2
原创 《零基础学习汇编语言》
CPU |--------------- | 内存 | | | 定位到1011。不是的,要达到完全的64位,CPU要64位,其次要有一个64位的操作系统,接着要有一个64位的操作软件,缺一不可。程序员 ------汇编指令----->编译器-------机器码------>计算机。
2024-06-23 21:32:59
1005
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人