学习路径
java web开发,离不开学习mybatis,这是我给出的一个学习路径:
步骤 | 学习主要渠道 | 目标 |
第1步 | mybatis官网 | 基本会用 |
第2步 | mybatis优秀书藉 | 建体系 |
第3步 | mybatis优秀博客 | 查漏补缺 |
第4步 | mybatisPlus | 提效率 |
官网初探
带各位去mybatis官网逛逛,看有有些啥,下面贴出了网址,可能访问比较慢,文档里还有些油管视频,有条件的话可以搭个梯子。
mybatis3官方首页:https://blog.mybatis.org/
mybatis3官方文档:https://mybatis.org/mybatis-3/zh/index.html
Home
主体是mybatis发版通知,发版周期大约是半年一次的小版本迭代。
右侧是通用的侧边导航。

Products
产品页给出了产品列表(包括下载入口、官方文档),整合列表、用例、相关的项目等。
通过这页可以了解到不只mybatis for java,还可以用在scala,还有生成器等。
项目 | 描述 |
MyBatis 3 | java语言的orm框架 |
Generator | 代码生成器 根据数据库表生成相应的xml、model、mapper接口文件 |
Migrations | 数据库schema版本管理工具 功能稳定近二年没迭代。 |
Migrations Maven Plugin | Migrations maven插件 |
MyBatipse | Eclipse plugin for MyBatis |
MyBatis for Scala | MyBatis for Scala |
MyBatis Dynamic SQL | SQL Generator for MyBatis and Spring JDBC Templates |
集成列表包括三大类

其他栏目
这是社区驱动的项目,大家可以贡献自己的力量。
有赞助商信息。
推荐的blog,具体的可以登录栏目查看。
mybatis3文档解读
https://mybatis.org/mybatis-3/zh/index.html
简介
它是一款orm框架,但只能称为半自动化,java实体与数据库表的映射关系需要通过xml配置来映射,sql操作需要通过mapper.xml来定义,不像JPA那样根据映射规则自动生成sql语句。
入门
使用入门,核心就是讲mybatis-config.xml核心配置,对应单一实例Configuration,这里运用了中介者模式来调用更复杂的底层组件。
mybatis-config.xml是万物之源,一生二,二生三,三生万物。看官思考三分钟:mybatis初始化的时候是先生成Configuration还是先生成SqlSessionFactory?
这是文档里的例子
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
通过源码分析,XMLConfigBuilder根据mybatis-config.xml生成Configuration对象,SqlSessionFactoryBuilder通过Configuration生成SqlSessionFactory。
public SqlSessionFactory build(Configuration config) {
return new DefaultSqlSessionFactory(config);
}
关注点:作用域(Scope)和生命周期
依赖注入框架可以创建线程安全的、基于事务的 SqlSession 和映射器,并将它们直接注入到你的 bean 中,因此可以直接忽略它们的生命周期。 如果对如何通过依赖注入框架使用 MyBatis 感兴趣,可以研究一下 MyBatis-Spring 或 MyBatis-Guice 两个子项目。
SqlSession 的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。 绝对不能将 SqlSession 实例的引用放在一个类的静态域,甚至一个类的实例变量也不行。
XML配置
就是mybatis-config.xml配置,<configuration>里有9个子节点,mappers是mybatis的精髓。
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
databaseIdProvider(数据库厂商标识)
mappers(映射器)
具体的这里就不一一介绍,文档讲的很全面。
XML 映射器
jdbc sql执行主要关注三个点:sql语句,入参,结果集。
mapper映射器配置,resultMap配置了入参、结果集与javabean的映射关系,
dml有insert、update、delete标签
dql有select标签。
其他元素有sql、cache、cache-ref,是功能的增强。
动态 SQL
动态sql的几种标签,以及插入脚本语言。更多的细节需要看书籍和源码。
Java API
高级api接口,学习如何使用mybatis。
SQL 语句构建器
工具类介绍:Sql、SqlBuilder
其他
日志等其他的,看官自行查阅。
(完)
(彩蛋)
后续推出系列学习文档,更新频率每周一篇。请关注!