首页 > 编程知识 正文

java代码运行原理,java运行原理图

时间:2023-05-03 21:35:21 阅读:175683 作者:16

Mybatis的工作原理、Mybatis的原理

执行sql语句需要获取SqlSession,如何获取此对象? 慢慢分析一下这些词吧:

步骤1 :从Resources加载已配置的mybatis.xml配置文件。 Resources是一种用于读写ibatis.io包下的类或文件的io流,通过getResourceAsStream读取xml文件,并降低配置文件以将其解析为流。

第二步:然后看第二句话。 这句话很关键。 首先,new创建了SqlSessionFactoryBuilder对象。 他是SqlSessionFactory的构建者。 我们调用了他的build (方法)。 这个方法是什么样子? 请看他的源代码:

我发现里面有XMLconfigBuilder对象。 他在做什么呢? 他是用于解析XML文件的生成器,使用他的parse ()方法解析XML文件

分析完成后,他返回一个configuration对象,用于存储mybatis核心配置文件分析完成后的结果。 这个configuration又回谁了? 继续查看源代码:

他还返回了一个build方法,将刚才的返回值configuration作为参数传递给此方法,并返回了DefaultSqlSessionFactory对象。 这是SqlSessionFactory的实现类,用于生产defaultSqlSession对象。 上面的第二句话真的结束了。

这时,一个合伙人有没有产生疑问呢? 为什么DefaultSqlSessionFactory是SqlSessionFactory的实现类? 为什么我们不直接新建DefaultSqlSessionFactory呢? 原因:查看源代码,如果是newdefaultSqlSessionFactory,我们需要一个配置对象,这个对象是经过几番周折才得到的。 我们一般采用建筑模式,直接将xml字节流或字符流传递给sqlSessionfactoryBuilder即可

第三步:我们往下走。 我们的最终目的是获取SqlSession对象。 现在我们有了SqlSessionFactory,让我们快乐地生成SqlSession吧。 从第三句来看,openSession (方法被调用了。 这又是什么? 查看源代码:

确保返回值是sqlSession,然后看看里面有什么。

Transaction,这显然是交易。 您知道sql的执行涉及事务操作、提交、回滚等。 这个transaction生成需要什么样的参数呢? 如果您查看源代码,就会发现它有一个environment (放置在XML中),是从configuration中获得的(到目前为止做的事情并不是徒劳的) ),这些参数transaction faction

一看就知道,executor这个名字是驱动器,是接口。 (一般在simpleExecutor中运行以实现类。 他是mybatis的核心执行器,相当于jdbc的语句,用于发送和执行sql语句。

有了这个,就可以得到最后的sqlSession,知道应该做什么。

总之,mybatis运行时首先通过resources加载核心配置文件,即mybatis.xml文件,然后通过xmlConfigBulider进行分析,分析完成后将结果放入configuration中将其作为参数传递给build ()方法,然后调用返回一个diguration的openSession ()方法以获取SqlSession。 在构建SqlSession的同时,还需要转换和执行程序来进行后续操作。

http://www.dengb.com/Java BC/1234107.html www.dengb.com true http://www.dengb.com/Java BC/1234107.htmltechartichartic 第一步:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。