Mybatis学习心得(一)
学习背景
1.公司技术栈需求--所在公司的技术栈包含Mybatis
2.自我提升需求--面对市场的变化,需要不断提高自己,对自己的要求相应的就需要提高,
对技术的追求就不能仅仅停留在会用的地步,要知其然知其所以然。
3.Mybatis简单易懂
4.传统JDBC弊端太多
4.1 jdbc底层没有用连接池、操作数据库需要频繁的创建和关联链接。消耗很大的资源
4.2 写原生的jdbc代码在 java 中,一旦我们要修改sql的话,java需要整体编译,
不利于系统维护
4.3 使用PreparedStatement预编译的话对变量进行设置123数字,这样的序号
不利于维护
4.4 返回result结果集也需要硬编码。
Mybatis核心概念
名称 | 意义 |
---|---|
Configuration | 管理 mysql-config.xml 全局配置关系类 |
SqlSessionFactory | Session 管理工厂接口 |
Session | SqlSession 是一个面向用户的接口。SqlSession 中提供了很多操作数据库的方法 |
Executor | 执行器是一个接口(基本执行器、缓存执行器),作用:SqlSession 内部通过执行器操作数据库 |
MappedStatement | 底层封装对象,作用:对操作数据库存储封装,包括 sql 语句、输入输出参数 |
StatementHandler | 具体操作数据库相关的 handler 接口 |
ResultSetHandler | 具体操作数据库返回结果的 handler 接口 |
Mybatis属性
属性名 | 意义 |
---|---|
属性(properties) | 系统属性占用配置 |
设置(settings) | 用于修改Mybatis的运行时行为 |
类型别名(typeAliases) | 为类型建立别名,一般使用更短的名称替代 |
类型处理器(typeHanders) | 用于将预编译语句(PreparedStatement)或结果集(ResultSet)中的JDBC类型转化成Java类型 |
对象工厂(ObjectFactory) | 提供默认构造器或者执行构造参数初始化目标类型的对象 |
插件(plugins) | Mybatis提供插件的方式来拦截映射 |
环境(Environments) | Mybatis允许配置多个环境 |
数据库标识提供商(dataBaseIdProvider) | 数据库标识提供商 |
SQL映射文件(mappers) | SQL映射文件 |
源码下载
两种方式:
1.登录github,idea通过git地址下载(非常慢)
2.直接下载zip包,解压,idea本地导入(推荐这种方式)
git地址:
https://github.com/mybatis/mybatis-3
https://github.com/mybatis/parent(依赖)
解决parent依赖问题
Mybatis源码依赖parent工程。需要先编译parent工程再编译mybatis工程,具体如下:
1.将parent工程克隆到本地目录中;
2.进入parent工程下黑窗口或者idea Terminal窗口执行mvn clean install,将parent工程依赖的包下载下来、并保证parent工程编译通过。
3.修改mybatis工程的pom.xml文件中标识parent依赖的地方
<parent>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-parent</artifactId>
<version>32</version>
<relativePath />
</parent>
4.执行mvn clean install 指令就可以将mybatis工程构建成功了。
总结:至此,我们的Mybatis源码就编译成功了,接下来我们就可以愉快的学习Mybatis了。