MyBatis 加载研读

用了这么久的 mybatis, 今天看一下它是如何工作的。

在配spring mybatis 的时候我们都会有一个spring-mybatis.xml 文件。里面定义了这么一个bean

fly.fky.restapi.dao  //这是一个包名, dao 的声明都在这里

当我们启动服务时候,MapperScannerConfigurer 类会将我们配置的包解析出来

注册到全局beanFactory 里面

这个 配置了我们一些sql 语句文件路径

在这些文件解析后会把 <insert>、<delete>、<update>、<select> 解析成MappedStatement 对象。

一个MappedStatement对应mapper文件中的一个<insert>、<delete>、<update>、<select>,每次执行MyBatis操作的时候先获取对应的MappedStatement。

通过SqlSessionTemplate 这个类代理调用 selectOne 

然后进入 DefaultSqlSession 找到 上面解析储存的 MappedStatement

在这里才真正的执行了sql 语句.

猜你喜欢

转载自my.oschina.net/u/241688/blog/1572404