摘要: MyBatis提供了一种动态代理实现SQL调用的功能,使用者只需要在映射文件中配置SQL语句与映射规则即可完成SQL调用和结果集封装。下面代码展示了动态代理调用的基本步骤: public void testMyBatisBuild() throws IOException { InputStream 阅读全文
posted @ 2020-04-30 15:35 听到微笑 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 说明:本文参考至https://www.jianshu.com/p/baba62bbc107 MyBatis 在进行参数处理、结果映射时等操作时,会涉及大量的反射操作。为了简化这些反射相关操作,MyBatis 在 org.apache.ibatis.reflection 包下提供了专门的反射模块,对 阅读全文
posted @ 2020-04-30 15:31 听到微笑 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 优秀的ORM框架都应该提供缓存机制,MyBatis也不例外,在org.apache.ibatis.cache包下面定义了MyBatis缓存的核心模块,需要注意的是这个包中只是MyBatis缓存的核心实现,并不涉及一级缓存和二级缓存的实现,本文同样没有涉及到一二级缓存的具体实现方式的讲解。 在阅读缓存 阅读全文
posted @ 2020-04-30 15:28 听到微笑 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 数据源对象是比较复杂的对象,其创建过程相对比较复杂,对于 MyBatis 创建数据源,具体来讲有如下难点: MyBatis 不但要能集成第三方的数据源组件,自身也提供了数据源的实现;数据源的初始化参数较多,比较复杂; 在MyBatis中使用了工厂模式来实现数据源的创建,使用代理模式来帮助实现自己的数 阅读全文
posted @ 2020-04-30 15:23 听到微笑 阅读(1) 评论(0) 推荐(0) 编辑
摘要: MyBatis源码的logging包下是日志模块的相关实现,Mybatis日志模块通过适配器模式和代理模式优雅的实现了SQL日志的输出功能。 一. 适配器模式实现了MyBatis对第三方日志框架的适配 Mybatis内部没有提供日志实现类,需要接入第三方的日志组件,但第三方组件都有自己的log级别, 阅读全文
posted @ 2020-04-30 15:19 听到微笑 阅读(1) 评论(0) 推荐(0) 编辑