- 博客(356)
- 收藏
- 关注
原创 【MyBatis】如何编写动态SQL
如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。在循环的时候拼接多个sql条件,用trim标签的prefixOverrides属性覆盖第一个and或者or,前缀加上"and (“,后缀加上” )",动态生成一个条件满足多种情况的sql。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。
2024-12-27 13:46:09
901
原创 【MyBatis】高级结果映射
但是有的时候我们查询的结果并不需要显示全部字段,或者我们需要将A表和B表进行联合查询,查询的结果既有A表的字段,又有B表的字段,这个时候再继续用pojo来作为数据库数据传输的对象显然就不太合适了,我们就需要根据查询结果,再创建一个DTO对象来帮助我们进行数据传输。上面是Emp表对应的pojo对象,包含了Emp表的全部字段,但是现在我们需要进行一个Emp表和DEPT表的联合查询,再去使用这个Emp对象显然就不合适了,需要根据这个联合查询显示的字段,再去创建一个DTO对象。关联元素就是专门用来处理关联关系的;
2024-11-29 14:56:07
816
原创 【MyBatis】MyBatis的一级缓存和二级缓存简介
二级缓存是基于 mapper文件的namespace的,也就是说多个sqlSession可以共享一个mapper中的二级缓存区域,并且如果两个mapper的namespace相同,即使是两个mapper,那么这两个mapper中执行sql查询到的数据也将存在相同的二级缓存区域中。这是因为spring整合Mybatis之后,sqlSession是要交给spring容器去管理的,在每一次执行sql之后,spring会将sqlSession关闭,关闭sqlSession会清空一级缓存,所以一级缓存就会失效。
2024-08-31 23:53:13
1210
原创 【MyBatis】史上最全的MyBatis执行SQL原理分析
史上最全的MyBatis执行SQL的原理分析,深入底层源码,一篇文章带你彻底搞懂MyBayis执行SQL的底层实现,横扫面试场!
2024-07-29 14:21:29
1532
原创 【MyBatis】MyBatis解析动态SQL原理分析
MyBatis通过SqlNode、SqlSource等处理动态SQL,XMLMapperBuilder解析XML,NodeHandler(如IfHandler、TrimHandler)构造动态SQL逻辑,最终生成BoundSql执行。prefixOverrides用于trim标签中忽略特定前缀,精简SQL输出。
2024-07-29 09:42:34
1173
原创 【MyBatis】一篇文章带你彻底搞懂MyBatis解析SQL映射文件底层原理
本篇文章重点分析MyBatis解析SQL映射文件底层原理,深入源码层面进行讲解。史上最全的MyBatis解析SQL映射文件原理文章。
2024-06-28 13:33:33
1380
原创 【MyBatis】MyBatis解析全局配置文件源码详解
这篇文章主要介绍了 MyBatis 解析全局配置文件的过程,包括配置文件解析入口、初始化 XMLConfigBuilder、解析全局配置文件、创建 SqlSessionFactory 对象等步骤。文章还详细分析了配置文件中各个节点的解析过程,如 properties、settings、environments、typeAliases、typeHandler、mappers 等。最后,文章总结了 MyBatis 解析全局配置文件的流程。
2024-05-25 18:16:35
1149
原创 【MyBatis】MyBatis的介绍和基本使用
本文介绍了Java数据库操作框架MyBatis的历程和使用。文章首先讲述了JDBC的基本概念和特点,阐述了其在使用中的优缺点,例如编码量大和异常处理繁琐。在对比JDBC和MyBatis之后,文中介绍了其他数据库操作技术如DBUtils、Hibernate、Spring JDBC和Spring Data JPA。然后详述了MyBatis的组件和结构,并提出其作为半自动ORM框架的优缺点。最后,文章以步骤形式说明了如何搭建和使用MyBatis项目,并对如何通过XML和注解实现基本的数据库增删改查操作进行了描述。
2024-03-31 21:29:03
807
原创 【Netty】Netty的使用和常用组件详解
这篇文章主要介绍了Java网络应用框架Netty的基础知识和用法。Netty是基于Java NIO的异步事件驱动网络应用框架,提供了简单易用的API。文章解释了为何Netty选择NIO而不是AIO,主要是由于在Linux系统上,AIO并无显著性能优势。然后,文章还介绍了如何编写第一个Netty程序,包括服务端和客户端的创建和通信实现。最后,文章详细描述了Netty中的重要组件,如EventLoop、Channel和ChannelHandler等,并解释了它们各自的作用。有助于读者快速上手Netty。
2024-03-19 19:00:24
2378
1
原创 【Spring MVC】Spring MVC拦截器(Interceptor)
本文将带你详细了解Spring MVC拦截器的执行顺序、底层原理以及生产应用。
2024-03-18 21:51:20
2790
原创 【Spring MVC】处理器映射器:AbstractHandlerMethodMapping源码分析
我们现在最流行的就是使用注解实现Controller,那这就会涉及到AbstractHandlerMethodMapping,这个类在我们分析处理请求的源码中非常重要,本篇文章就带你分析AbstractHandlerMethodMapping的底层源码,让你彻底搞懂它的底层原理。
2024-02-24 15:16:03
1572
原创 【Spring MVC】Spring MVC的执行流程与源码分析
史上最全的Spring MVC执行流程源码解析,爆肝一个月带你彻底搞懂Spring MVC的底层原理。学习Spring MVC源码看这一篇就够了。
2024-02-09 23:46:28
1430
2
原创 【Spring框架】Spring事务同步
TransactionSynchronizationManager事务同步管理器,管理每个线程的资源(对于事务,DataSource创建的连接对象connection等称作事务的资源)和事务同步(TransactionSynchronization---用来监听事务操作的回调类,其中定义了在事务执行过程中,进行的拓展操作,如before/after--commit/completion,在getSynchronizations中,对其进行sort排序返回)。同步分两种,资源的同步和事务的同步。
2024-02-09 22:31:53
1499
原创 【Spring MVC】Spring MVC框架的介绍及其使用方法
史上最全的Spring MVC使用讲解,一篇文章带你快速掌握Spring MVC的使用方法。
2023-11-04 14:35:17
1216
原创 【Spring框架】一篇文章带你彻底搞懂Spring解决循环依赖的底层原理
史上最全的Spring循环依赖源码详解,一篇文章带你彻底搞懂Spring解决循环依赖的底层原理,横扫面试场。
2023-09-04 20:41:24
8557
7
原创 【线程池】史上最全的ScheduledThreadPoolExecutor源码分析
史上最全的ScheduledThreadPoolExecutor源码分析,一篇文章带你分析ScheduledThreadPoolExecutor底层原理,带你彻底学会定时任务线程池。
2023-07-01 10:56:13
1200
原创 【阻塞队列】阻塞队列DelayedWorkQueue源码详解
阻塞队列DelayedWorkQueue源码详解,一篇文章带你彻底学会DelayedWorkQueue底层原理。
2023-07-01 10:38:49
1329
原创 【线程池】史上最全的ThreadPoolExecutor源码详解
史上最全的ThreadPoolExecutor源码详解,一篇文章带你彻底搞懂ThreadPoolExecutor底层原理。
2023-06-30 22:59:28
3498
原创 【线程池】Java线程池的内部类Worker详解
Java线程池的内部类Worker详解,一篇文章让你彻底搞懂Worker内部类,带你深度分析底层源码。
2023-06-30 22:15:40
3402
2
原创 【线程池】ScheduledExecutorService接口和ScheduledThreadPoolExecutor定时任务线程池使用详解
一篇文章带你快速了解ScheduledExecutorService接口和ScheduledThreadPoolExecutor定时任务线程池。
2023-06-30 21:45:01
7440
原创 【LeetCode】字符串转换整数 (atoi) [M](模拟)
LeetCode 8:请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数。采用模拟求解。
2023-05-25 16:13:15
893
原创 【并发基础】Happens-Before模型详解
了解Happens-Before模型,读着一篇文章就够了。详细讲解Java提供的九种保证可见性和有序性的语义规则。
2023-05-07 21:56:59
720
原创 【并发基础】一篇文章带你彻底搞懂Java线程中断的底层原理——interrupt()、interrupted()、isInterrupted()
一篇文章带你彻底搞懂Java中断机制,从底层源码带你分析interrupt()的机制与用法。学习Java中断看这一篇就够了。
2023-04-23 21:36:11
5153
1
原创 【并发基础】join()方法底层原理详解
详细讲解Thread类中join()方法实现线程的强制执行,通过底层源码深入了解方法原理,彻底了解join方法的运作机制。
2023-03-16 22:16:34
3900
2
原创 【并发基础】线程的通知与等待:obj.wait()、obj.notify()、obj.notifyAll()详解
详细讲解Object类中wait()、notify()、notifyAll()方法实现线程通信和线程等待,以及各自的特点和使用方法。
2023-03-12 17:30:59
1242
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人