mybatis
文章平均质量分 94
通过源码梳理MyBatis的实现思路
机器挖掘工
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下
展开
-
MyBatis是纸老虎吗?(七)
在MyBatis中一级缓存的生命周期和SqlSession一致;一级缓存内部设计简单,只是一个没有容量限定的HashMap,在缓存的功能性上有所欠缺;一级缓存最大范围是SqlSession内部,如果有多个SqlSession或者在分布式的环境下,数据库写操作会引起脏数据,建议设定缓存级别为Statement原创 2024-03-25 19:46:19 · 922 阅读 · 0 评论 -
MyBatis是纸老虎吗?(六)
SqlSource是创建一个sql命令字符串原材料,这要怎么理解呢?大家都知道MyBatis提供了很多定义一个sql语句的xml标签吧,比如insert、select、delete、update、sql、parameterMap等等,这些数据解析后会用SqlSource表示,之后通过调用MappedStatement对象上的getBoundSql()方法,该方法会接受一个Object类型的参数值对象,比如本篇案例中提到的UserDto对象,会创建一个BoundSql对象。原创 2024-03-24 16:05:04 · 934 阅读 · 0 评论 -
MyBatis是纸老虎吗?(五)
通过这篇文章我们知道mapper文件中的sql命令在java中是通过MapperStatement类来表示的,在mapper中,我们可以配置的元素有很多,最常见的是resultMap、insert、delete、update、select及sql等原创 2024-03-23 15:12:09 · 652 阅读 · 0 评论 -
MyBatis是纸老虎吗?(四)
InterceptorChain是一个容器(暂时这么理解吧),用于存放实现了Interceptor接口的拦截器(通过InterceptorChain中的addInterceptor()方法完成拦截器的添加,数据会添加到InterceptorChain中的interceptors中)。其次该接口中的pluginAll()方法的主要作用是遍历Interceptor拦截器组成的集合原创 2024-03-19 21:18:42 · 996 阅读 · 0 评论 -
MyBatis是纸老虎吗?(三)
该方法中的Environment.Builder用到了建造者模式,这里的这个写法是我熟悉的建造者模式的标准写法(定义主类及主类中的Builder类,注意这两个类的属性完全一致,主类中的所有属性只提供get方法,Builder类中既提供get方法,又提供set方法。这里一定要注意主类的构造方法会对相关属性进行判断(实际中不一定要有)。最后使用时先创建Builder对象,然后调用Builder对象上的build()方法创建主类对象)原创 2024-03-17 20:08:16 · 980 阅读 · 0 评论 -
MyBatis是纸老虎吗?(二)
要回答这个问题,我们可以用一下经验主义。中文中有一种造字手法叫形声字,它是在象形字、指事字、会意字的基础上发展起来的。这种字的特点是:它由两部分组成,一部分表示意义的意符(也称为形旁),另一部分表示声音的声符(也叫做声旁)。形声字的形态多样,可以有不同的排列组合,比如常见的材、偏等等。如果按这种造字方法理解,我觉得前者是一个工厂类(Factory表意,Transaction是一个偏旁),主要用于创建Transaction对象。而后者类似于汉字中的单字,譬如王、土等,王、土这些字表示一种具象化的事务,个人认为原创 2024-03-10 21:23:38 · 1094 阅读 · 3 评论 -
MyBatis是纸老虎吗?(一)
工作这么久,也换了不少工作,每次面试还像高中时参加考试一样,胆战心惊,不知所措。说好听点,是心理素质差,缺乏经验;说难听些,就是知识点掌握不到位,毫无勇气面对别人的考察原创 2024-03-03 13:30:45 · 423 阅读 · 0 评论