随笔分类 -  MyBatis

摘要:在MyBatis架构中SqlSession是提供给外层调用的顶层接口,它是MyBatis对外暴露的最重要的接口,用户通过该接口即可完成数据库的全部操作。在上文中我们明白了我们常用的Mybatis动态代理开发实际上底层还是依赖于SqlSession。在单独使用MyBatis框架时,我们每一次都会获取一 阅读全文
posted @ 2020-05-21 16:02 听到微笑 阅读(25) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章中(《MyBatis动态代理调用过程源码分析》),我们知道了MyBatis动态代理的核心是MapperProxy,在它内部封装了动态代理的调用逻辑,而我们也知道了在使用动态代理进行操作的时候实际上还是调用的SqlSession中的API去实现的,那么我们今天就来分析一波SqlSessio 阅读全文
posted @ 2020-05-04 13:00 听到微笑 阅读(8) 评论(0) 推荐(0) 编辑
摘要:MyBatis提供了一种动态代理实现SQL调用的功能,使用者只需要在映射文件中配置SQL语句与映射规则即可完成SQL调用和结果集封装。下面代码展示了动态代理调用的基本步骤: public void testMyBatisBuild() throws IOException { InputStream 阅读全文
posted @ 2020-04-30 15:35 听到微笑 阅读(35) 评论(0) 推荐(0) 编辑
摘要:说明:本文参考至https://www.jianshu.com/p/baba62bbc107 MyBatis 在进行参数处理、结果映射时等操作时,会涉及大量的反射操作。为了简化这些反射相关操作,MyBatis 在 org.apache.ibatis.reflection 包下提供了专门的反射模块,对 阅读全文
posted @ 2020-04-30 15:31 听到微笑 阅读(19) 评论(0) 推荐(0) 编辑
摘要:优秀的ORM框架都应该提供缓存机制,MyBatis也不例外,在org.apache.ibatis.cache包下面定义了MyBatis缓存的核心模块,需要注意的是这个包中只是MyBatis缓存的核心实现,并不涉及一级缓存和二级缓存的实现,本文同样没有涉及到一二级缓存的具体实现方式的讲解。 在阅读缓存 阅读全文
posted @ 2020-04-30 15:28 听到微笑 阅读(10) 评论(0) 推荐(0) 编辑
摘要:数据源对象是比较复杂的对象,其创建过程相对比较复杂,对于 MyBatis 创建数据源,具体来讲有如下难点: MyBatis 不但要能集成第三方的数据源组件,自身也提供了数据源的实现;数据源的初始化参数较多,比较复杂; 在MyBatis中使用了工厂模式来实现数据源的创建,使用代理模式来帮助实现自己的数 阅读全文
posted @ 2020-04-30 15:23 听到微笑 阅读(14) 评论(0) 推荐(0) 编辑
摘要:MyBatis源码的logging包下是日志模块的相关实现,Mybatis日志模块通过适配器模式和代理模式优雅的实现了SQL日志的输出功能。 一. 适配器模式实现了MyBatis对第三方日志框架的适配 Mybatis内部没有提供日志实现类,需要接入第三方的日志组件,但第三方组件都有自己的log级别, 阅读全文
posted @ 2020-04-30 15:19 听到微笑 阅读(13) 评论(0) 推荐(0) 编辑
摘要:一. 下载源码 GitHub地址:https://github.com/mybatis/mybatis-3 复制上面的地址执行下列命令: git clone https://github.com/mybatis/mybatis-3.git mybatis-source 注:GitHub可能会很慢,但 阅读全文
posted @ 2020-04-02 11:15 听到微笑 阅读(34) 评论(0) 推荐(0) 编辑
摘要:缓存是提高软硬件系统性能的一种重要手段;硬件层面,现代先进CPU有三级缓存,而MyBatis也提供了缓存机制,通过缓存机制可以大大提高我们查询性能。 一级缓存 ​ Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言,一级缓存又 阅读全文
posted @ 2019-08-05 13:29 听到微笑 阅读(19) 评论(0) 推荐(0) 编辑
摘要:最近博主在搭建Mybatis项目时遇到了一问题,在一切配置妥当后,开始运行测试代码,但是此时控制台无情的抛出了异常: 开始寻找问题根源 咦?难道是我哪里写错,我的第一反应是我的xml配置文件哪里写错了,我开始检查下面几个点: XML文件是否与Mapper代码在同一个包中。XML配置文件文件名是否与M 阅读全文
posted @ 2019-07-30 16:34 听到微笑 阅读(6) 评论(0) 推荐(0) 编辑
摘要:延迟加载就是在需要用到数据的时候才进行加载,不需要用到数据的时候就不加载数据。延迟加载也称为懒加载。 优点:在使用关联对象时,才从数据库中查询关联数据,大大降低数据库不必要开销。 缺点:因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也需要耗费时间,所以可能造成用户 阅读全文
posted @ 2019-07-30 12:29 听到微笑 阅读(64) 评论(0) 推荐(0) 编辑
摘要:问题描述 ​ 通常我们我们在单表查询中我们可以采用limit进行分页查询,这样可以减少页面的显示量,加快页面想应速度。但是在MyBatis框架中,如果我们在一对多或多对多查询中直接使用limit关键字的话会产生查询结果数量不够的情况。 我们先给出一个关系模型: ​ blog_tag(标签表)和blo 阅读全文
posted @ 2019-04-01 11:10 听到微笑 阅读(7) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示