首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
mybatis
订阅
巽竹
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
Java获取Mybatis动态生成的sql接口实现
目的:利用mybatis动态生成sql的能力返回可执行的sql,但并不会执行。 场景:需要生成复杂的sql供其他程序执行 编写xml: SqlGenarate.mapper.xml 定义接口 实现接口
Mybatis源码系列7-原来你是这样的插件
Mybatis通过插件机制,提供扩展性。 Mybatis的插件机制,是拦截器的思想,不同于Filter,interceptor之类的拦截器。Mybatis插件使用动态代理+责任链模式来实现。 责任链模式: 负责组织所有的代理增强链式调用。 插件的插入点在Configuratio…
Mybatis源码系列6-独秀日志模块
Mybatis本身不提供日志实现,而是兼容第三方日志框架,如:slf4J,commonsLoging,Log4J2,Log4J,JdkLog。为了兼容和使用第三方日志框架,Mybatis进行了优秀的设计。 为了兼容第三方日志框架,Mybatis使用了适配器模式,并且使用适配器模…
Mybatis源码系列5-二级缓存
上文开启二级缓存步骤中,可以看出,二级缓存的配置是在xml文件中。所以想要探究二级缓存在哪里。还是得从xml文件的解析过程入手。 同一个namespace下的所有MappedStatement.cache属性 指向同一个cache对象。共用一个二级缓存 二级缓存具有多样性,我们…
Mybatis源码系列4-一级缓存
也就说一个会话配一个一级缓存。 一级缓存的作用范围是sqlsesion, 其生命周期也跟随sqlsession生命周期 一级缓存用PerpetualCache类表示,PerpetualCache 实现了Cache接口。而Cache 接口是Mybatis定义的缓存接口。Perpe…
Mybatis源码系列3-三种SqlSession的区别
三个SqlSessionDefaultSqlSessionSqlSessionManager1.获取DefaultSqlSession的能力2.解决DefaultSqlSession的不足2.1解决自动关闭问题2.1解决线程安全问题。SqlSessionTemplate1.解决…
Mybatis源码系列2-Mapper原理
第一种形式虽然有很简单,但是我们需要自己找对应SQL 的定位id(namsespace+id)写到方法参数中。 反而第二种方式,采用方法调用的方式,不见了SQL定位字符串,更加符合开发人员的开发习惯。 当我们从sqlsession获取一个Mapper时,sqlsession会以…
Mybatis源码系列1-Mybaits初始化
首先我们再回顾下Mybaits的基本使用。 一切都从SqlSessionFactoryBuilder说起。SqlSessionFactoryBuilder是通过builder设计模式来创建一个SqlSessionFactory 工厂。 SqlSessionFactoryBuil…
Mybatis源码系列0-从JDBC到Mybatis
硬编码东西,最好统一管理。我们看到第一步,二步中的驱动,数据库url,用户名,密码都是在项目启动后不变的。所以,我们应该搞一个属性配置,专门存放这些不变的东西。 获取连接: 第二步存在问题就是,我们不能在每次获取数据链接的地方,都把DriverManager.getConnec…
为什么建议框架源码学习从Mybatis开始
Configuration 像是Mybatis的总管,Mybatis的所有配置信息都存放在这里,此外,它还提供了设置这些配置信息的方法。Configuration可以从配置文件里获取属性值,也可以通过程序直接设置。 用一句话概述Configuration,他类似Spring中的…