上一篇讲解了SqlSessionFactory的获取过程,那接下来我们就来说一说如何从SqlSessionFactory中拿到SqlSession。还是写一个测试方法,一步步debug,跟踪源码,看看SqlSessionFactory到底做了什么。
首先进入DefaultSqlSessionFactory中,调用它的openSession()方法,openSession()方法有很多重载,我们这里什么参数都没有。有兴趣的朋友,可以详细看一下每一个参数代表什么含义,这里就不再讲述。接着调用openSessionFromDataSource(execType, level,autoCommit),这三个参数是什么意思呢?第一个参数execType是指执行器类型,如果没有配置,默认是SIMPLE,还有两个是REUSE,BATCH,顾名思义,一个代表可重复使用,一个代表批量处理。第二个参数是level,代表的是事务的隔离级别,我们知道mysql有四种隔离级别,如果没有配置,默认为null。第三个参数是autoCommit,代表自动提交,配置以后,事务会自动提交,这里没有配置,所以默认为false。在这个方法里,先是从configuration中获取