资讯专栏INFORMATION COLUMN

Mybatis源码分析(1) - Mybatis包目录简介

chengtao1633 / 1813人阅读

摘要:核心包包名称包内内容简介注解目录。如等类的实例反射生成工具目录主要是注解,和的构造器及转换器内部缓存接口。等默认的游标处理类数据源工厂类及实现。数据源实现类自定义的三个异常类。。都继承自执行器相关包。为后续分析源码打下基础。

Mybatis核心包

包名称 包内内容简介
annotation 注解目录。包括所有的注解。如@SELECT,@UPDATE
binding Mapper类的实例反射生成工具目录
builder 主要是注解,mapper和SqlSuorce的构造器及转换器
cache Mybatis内部缓存接口。实现了一些特定的缓存策略。FifoCache,LruCache,BlockingCache,LoggingCache
cursor 默认的游标处理类
dataSource 数据源工厂类及实现。实现类包括JndiDataSourceFactoryPooledDataSourceFactoryUnpooledDataSourceFactory。 数据源实现类: UnpooledDataSourcePooledDataSource
exceptions Mybatis自定义的三个异常类。ExceptionFactoryPersistenceExceptionTooManyResultsExceptionIbatisException。都继承自RuntimeException
executor 执行器相关包。包括Key生成器、加载器(包括Cglib、Javassist的代理,结果加载器)、参数处理器接口、结果处理器、结果集(resultSet)处理器、Statement处理器(实现类:BaseStatementHandlerCallableStatementHandlerPreparedStatementHandlerRoutingStatementHandlerSimpleStatementHandler)、执行器(SimpleExecutorReuseExecutorCachingExecutorBatchExecutorBaseExecutor)
io 主要是定义的几个VFS(VFSDefaultVFSClassLoaderWrapper)
javassist javassist的字节码处理包
jdbc 与Sql相关的操作。如Sql运行器,脚本运行器和Sql封装类等
lang 指定是用java7还是java8的API的注解.UsesJava7UsesJava8
logging 各个类型的日志适配器,都实现了Log接口。StdOutImplSlf4jImplNoLoggingImplLog4j2ImplLog4jImplJdk14LoggingImplBaseJdbcLoggerJakartaCommonsLoggingImpl
mapping 主要是接口参数,sql和返回结果的映射类,主要类包括:MappedStatement,ParameterMap,ParameterMapping,ResultMap,ResultMapping,BoundSql,SqlSource等类
ognl ognl包在Mybatis中的内部代码引用
parsing 变量解析.如解析${},#{}
plugin 主要包含插件的定义接口。如Interceptor,Plugin,InterceptorChain
reflection 主要是一些反射操作的工具方法和对象工厂类,以及一些常用的包装类,如BaseWrapper,BeanWrapper,CollectionWrapper,MapWrapper,ObjectWrapper,,,
scripting 执行驱动和动态Sql解析的老巢
session 主要是SqlSession和SqlSessionFactory
transaction 主要是mybatis简单封装的jdbc事务操作类
type 各个类型数据的处理器。用于动态的设置参数和转换数据。如IntegerTypeHandler用来处理Integer类型的值的set和get操作。除了八大基本类型。还有常用的集合及Map类型,还增加了各种时间类型的处理器
总结

通过整理每个包的主要功能。通览整个mybatis的代码结构,了解各个组件的位置和大概的处理关系。为后续分析源码打下基础。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74041.html

相关文章

  • Java学习路线总结,搬砖工逆袭Java架构师(全网最强)

    摘要:哪吒社区技能树打卡打卡贴函数式接口简介领域优质创作者哪吒公众号作者架构师奋斗者扫描主页左侧二维码,加入群聊,一起学习一起进步欢迎点赞收藏留言前情提要无意间听到领导们的谈话,现在公司的现状是码农太多,但能独立带队的人太少,简而言之,不缺干 ? 哪吒社区Java技能树打卡 【打卡贴 day2...

    Scorpion 评论0 收藏0
  • MyBatis 源码分析系列文章合集

    摘要:简介我从七月份开始阅读源码,并在随后的天内陆续更新了篇文章。考虑到超长文章对读者不太友好,以及拆分文章工作量也不小等问题。经过两周紧张的排版,一本小小的源码分析书诞生了。我在写系列文章中,买了一本书作为参考,这本书是技术内幕。 1.简介 我从七月份开始阅读MyBatis源码,并在随后的40天内陆续更新了7篇文章。起初,我只是打算通过博客的形式进行分享。但在写作的过程中,发现要分析的代码...

    Crazy_Coder 评论0 收藏0
  • 开发者测试-采用精准测试工具对Spring Boot应用进行测试

    摘要:,整合刚才已经下载好了,现在我们添加文件标签加一行如下然后是和在文件中添加数据源配置连接本地,新建数据库,查询执行项目页面列出来的语句自动建立该项目需要的数据库内容。 简介:本文主要介绍把现今主流的springboot框架项目和精准测试工具进行结合和应用,通过精准测试的数据穿透、数据采集、测试用例与代码的双向追溯、数据分析等一系列精准测试的特有功能,达到对项目质量的保证。  本次环境搭...

    galois 评论0 收藏0
  • 单手撸了个springboot+mybatis+druid

    摘要:配置想想,我们需要哪些数据库要用到,数据库连接池要用到桥接器要用到,因此要仓库点我去仓库中找到搜索这些加进去。 本文旨在用最通俗的语言讲述最枯燥的基本知识 最近身边的程序员掀起了学习springboot的热潮,说什么学会了springboot在大街上就可以横着走、什么有了springboot妈妈再也不担心我的编程了、什么BAT都喜欢的框架...听得作者那个心痒痒的,于是找了个时间,下载...

    adie 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<