mybatis 启动流程以及和spring或springboot的整合
2021-01-27 16:16:06 0 举报
学习笔记
作者其他创作
大纲/内容
Exector
statement 由 connection.createStatement得到 statement.execute(sql)具体分析StatementImpl#execute
ConnectionImpl#execSQL()
3.获取SqlSession session = sqlMapper.openSession()
connection
executor.query();
数据源 执行器 DefaultSqlSession 为 configuration 和 executor 执行器的组合
transaction
DefaultSqlSession#openSessionFromDataSource
4.执行相关操作User user = (User)session.selectOne(\"com.tuling.mapper.UserMapper.selectById\
MapperRegistry.addMappers
1.获取StatementHandler handler以及内部的parameterHandler resultSetHandler2.准备好 Statement stmt prepareStatement3.执行 hander.query
持有connection或其代理,本质上是connectionImpl里面MysqlIo的操作
DataSource
DefaultSqlSession#selectList
2.通过加载配置文件流构建一个SqlSessionFactory
StatementImpl#(ResultSetInternalMethods) rs = (MySQLConnection) locallyScopedConn.execSQL
SimpleStatementHandler#query 1.获取sql语句 boundSql.getSql2.执行sql语句 statement.execute(sql);3.resultSetHandler 封装执行结果
ConnectionImpl#MysqlIO#sqlQueryDirect()#Buffer resultPacket = sendComman()ResultSetInternalMethods rs = readAllResults(resultPacket ...)
statement
SimpleExecutor#doQuery
MappedStatement ms=configuration.getMappedStatement
本质上就是将mapper类名和动态代理工厂类进行映射保存
1.加载配置,读取资源mybatis-config.xml
DefaultSqlSession
configuration.addMappers(mapperPackage);
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader),sqlSessionFactory其实是对configuration的包装
实例化configuration
Configuration configuration = parser.parse()
初始化configuration填充解析出的xml配置信息
Environment environment = configuration.getEnvironment();
返回factorybuild(configuration);
DefaultSqlSessionFactory
5.相关操作UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectById(1L);
reader = Resources.getResourceAsReader(resource)
重点关注解析mapper sql
configuration
0 条评论
下一页