Mybatis Sql执行流程
2023-02-23 14:14:19 15 举报
Mybatis的Sql执行流程主要包括以下几个步骤:1. 加载配置文件和映射文件,创建会话工厂对象;2. 通过会话工厂获取SqlSession对象;3. 通过SqlSession对象获取Mapper接口的代理对象;4. 调用Mapper接口中的方法,传入参数;5. Mybatis根据方法名和参数生成对应的SQL语句;6. 执行SQL语句,获取结果集;7. 将结果集转换为Java对象并返回。在这个过程中,Mybatis还会处理事务、缓存等操作。总的来说,Mybatis的Sql执行流程是一个典型的ORM框架的工作流程,它将Java对象和SQL语句进行了映射,使得开发者可以更加方便地操作数据库。
作者其他创作
大纲/内容
拿到MappedStatement,也就是Mapper映射文件信息MappedStatement ms = configuration.getMappedStatement(statement);
openSession()
使用Mybatis操作数据库步骤:1.需要配置mybaits的核心配置文件2.Mapper接口+Mapper映射文件3.创建SqlSessionFactory4. 建立SqlSession5.使用SqlSession进行数据库的crud操作
一级缓存中获取对象list = resultHandler == null ? (List<E>) localCache.getObject(key) : null;
设置插件resultSetHandler = (ResultSetHandler) interceptorChain.pluginAll(resultSetHandler);
new RoutingStatementHandler()
进行SQL查询时会执行设置插件的Intercept方法
创建SqlSession会话(mybatis配置解析见链接)SqlSession sqlSession = sqlSessionFactory.openSession();
执行查询操作PreparedStatement ps = (PreparedStatement) statement; ps.execute(); return resultSetHandler.handleResultSets(ps);
执行SQL语句sqlSession.selectOne(\"com.mapper.TeacherMapper.queryTeacherById\
为statementHandler 设置插件,也是用的动态代理,和Excutor设置方式一致statementHandler = (StatementHandler) interceptorChain.pluginAll(statementHandler);
doQuery
设置插件parameterHandler = (ParameterHandler) interceptorChain.pluginAll(parameterHandler);
设置插件到动态代理,如:分页插件executor = (Executor) interceptorChain.pluginAll(executor);
拿到二级缓存Cache cache = ms.getCache();
0 条评论
回复 删除
下一页