MyBatis
java熟
这个作者很懒,什么都没留下…
展开
-
MyBatis 源码解析MyBatis如何解析配置 ?(六)
XMLMapperBuilder###parameterMapElement()//代码比较长了,因为parameterMap 涉及到比较多的东西 // <resultMap id="userMap" type="com.test.demo.model.SysUser">// <id property="id" column="id"/>// ...原创 2020-01-05 22:09:08 · 254 阅读 · 0 评论 -
MyBatis 源码解析MyBatis如何解析配置 ?(七)
最后还剩sql和select|insert|update|delete先看sql:XMLMapperBuilder###sqlElement() private void sqlElement(List<XNode> list) { //首先看是否配置了database id //如果配置了则将id传入,通过id进行选择 if (configura...原创 2020-01-05 22:05:42 · 193 阅读 · 0 评论 -
设计模式之适配器模式
假设姚明刚到火箭队的时候,由于语言不通,但是有需要接受教练的指挥。有以下三种办法:让姚明先学会英语让教练学会中文指挥给姚明配一个翻译显然,最具有可行性的方式便是给姚明配一个翻译。我们简单的模拟一下上面的情景模式://姚明类,刚开始只会接受中文指挥public class YaoMing { public void chineseOffensive(){ Sy...原创 2020-01-02 15:51:58 · 163 阅读 · 1 评论 -
MyBatis 的秘密 反射
MyBatis作为一款ORM框架,主要通过XML定义Object,这就难免用到反射,虽然JDK自带的反射已经方便使用,但是MyBatis依然结合业务功能,将反射功能封装成一个更加易用的包,这个包就在reflection中。在解析MyBatis的反色包之前,我们需要先通过需要看看MyBatis需要通过反射实现哪些功能。在MyBatis中,可以方便的获取数组属性和对象属性。比如:student.n...原创 2019-12-30 22:37:49 · 778 阅读 · 0 评论 -
MyBatis 的秘密动态SQL
动态SQL说到动态SQL,就不得不提Script,Java作为一个静态语音,代码需要先编译,然后再运行,虽然带来了效率,但是却损失了灵活性。Spring为此还专门提供了一套SpEL用来封装Java脚本语言API在MyBatis中,也支持动态SQL,想要将简单的String字符串编译成能运行的代码,需要其他的库的支持,MyBatis内部使用的是OGNL库。在OgnlCache中,是MyBat...原创 2019-12-30 22:27:47 · 176 阅读 · 0 评论 -
深入了解 MyBatis 源码解析(一)
之前在接触MyBatis的时候,就觉得这个技术的思想很新颖,要实现这些功能并不难,但是如何实现,以及MyBatis的整体架构却是我远远不及的。Mybatis作为一个半自动化ORM框架,同时具有灵活性和方便性,因此在国内各个大厂都十分受欢迎,如果让我自己实现这样一个框架,我可能会首先想到以下几块:XML解析模块,整个框架都是通过XML进行描述配置的,因此需要首先封装一个XML解析,可以考虑在To...原创 2019-12-29 22:13:57 · 196 阅读 · 0 评论 -
MyBatis代码整洁之道之设计模式细说责任链模式优缺点
责任链模式(Chain of Responsibility Pattern)需要了解更多可以参考这篇文章深入剖析 MyBatis 的内部设计和架构设计的实现细节【情景模式】在处理MQTT消息的时候,需要根据不同的Topic进行不同的处理,平时我们可以直接使用简单工厂。如下://消息处理接口public interface MessageHandler { void handleM...原创 2019-12-29 21:56:21 · 680 阅读 · 0 评论 -
MyBatis代码整洁之道之设计模式细说策略模式
设计模式之策略模式情景模式:设计一个超市收银系统,超市可能会根据不同节日给出不同的折扣代码:@Setterpublic class Market { private double price; private double discount=1; public double getPriceAfterDiscount() { ret...原创 2019-12-27 21:51:55 · 290 阅读 · 0 评论 -
无门无派 程序员整理的32个MyBatis面试专题。(都是干货)
1、什么是 MyBatis?答:MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。2、讲下 MyBatis 的缓存答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面,默认就有,二级缓存放在它的命名空间里,默认是不打开的,使用二级缓存属性类需要实现 Serializable 序列化接口(可用来保存对象的状态),可在它的映射文件中配...原创 2019-12-26 22:19:23 · 614 阅读 · 0 评论 -
MyBatis代码整洁之道之设计模式
到目前为止,MyBatis的源代码也看的七七八八了,不得不说MyBatis的代码写的真的很不错,逻辑清晰的同时功能还很齐全,同时可以发现,MyBatis中使用了非常多的设计模式,接下来简单总结下:建造者模式在MyBaits的各种对象构建类中,大多数都继承自BaseBuilder类,并且大多数类都是通过建造者模式实现。比如:SqlSessionFactoryBuilder 构建Sql...原创 2019-12-18 20:46:21 · 156 阅读 · 0 评论