文章目录
一、简介
- 持久层框架,基于JDBC做了简单的映射包装
- 支持普通SQL查询,存储以及高级映射
- 通过简单的XML或注解用于配置和原始映射
二、特点
- 支持自定义SQL,存储过程,及高级映射
- 实现自动对SQL的参数设置
- 实现自动对结果集进行解析和封装
- 通过XML或者注解进行配置和映射,减少代码量
- 通过配置文件进行数据源的连接信息配置
三、Mybatis整体架构分析
3.1 配置文件
1. 全局配置文件(核心配置文件)
mybatis-config.xml
- 配置数据源(数据库连接信息)
- 引入映射文件
2. 映射文件
XxxMapper.xml
- 配置sql语句
- 参数
- 结果集封装类型
3.2 SqlSessionFactory
- 获取
SqlSession
- 通过
newSqlSessionFactoryBuilder().build(inputStream)
来构建 inputStream
:读取配置文件的IO流
3.3 SqlSession
- 执行CRUD
- 线程不安全
3.4 Executor
- 执行器,
SqlSession
通过调用执行器来完成集体的CRUD
3.5 Mapped Statement
- 具体的sql
- 参数类型,
- sql执行结果的封装类型
四、MyBatis使用步骤
- 配置全局配置文件
mybatis-config.xml
,设置环境,事务,数据源等 - 配置映射文件
XxxxMapper.xml
- 获取全局配置文件的输入流,加载全局配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis/mybatis-config.xml");
- 通过全局配置文件的输入流创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
- 通过SqlSessionFactory获取SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
- 通过SqlSession操作crud
UserDAO userDao = sqlSession.selectOne("userMapper.queryCustInfoByCustCode","1");
- 关闭SqlSession,释放资源
sqlSession.close();