建立连接工作(准备):
首先会加载Myatis的配置文件,因为这些配置文件里面包括了数据源的各种配置,然后通过SqlSessionFactory创建一个SqlSession,然后可以通过SqlSession操作数据库。
一、解析XML:
首先,Mybatis 在初始化 SqlSessionFactoryBean 时,会找到 mapperLocations 配置的路径下中所有的XML文件并进行解析,这里我们重点关注两部分:
1、创建SqlSource:
Mybatis会把每个SQL标签封装成SqlSource对象,然后根据SQL语句的不同,又分为动态SQL和静态SQL。其中,静态SQL包含一段String类型的sql语句;而动态SQL则是由一个个SqlNode组成。
假如我们有这样一个SQL:
<select id="getUserById" resultType="user">
select * from user
<where>
<if test="uid!=null">
and uid=#{uid}