mybatis流程个人理解

mybatis的配置文件里面有链接数据库的配置 以及mapper的配置

首先 mybatis会使用SqlSessionFactoryBuilder来生产SqlSessionFactory工厂

具体的实现方式

 

String resource="spring-mybatis.xml";(这个配置文件里面包含了mapper(这里的mapper一般是spring的配置去扫描项目里面后缀名为mapper.xml的文件)和链接数据库的配置)

//加载mybatis 的配置文件(它也加载关联的映射文件)
InputStream is=MybatisUtils.class.getClassLoader().getResourceAsStream(resource);

//构建sqlSession 的工厂
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);

public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties) {
try {
XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, properties);
return build(parser.parse());
} catch (Exception e) {
throw ExceptionFactory.wrapException("Error building SqlSession.", e);
} finally {
ErrorContext.instance().reset();
try {
inputStream.close();
} catch (IOException e) {
// Intentionally ignore. Prefer previous error.
}
}
}

注意我们需要将配置文件转成流传入 ,这样mybatis的XMLConfigBuilder 才可以解析配置文件

然后通过XMLConfigBuilder 会得到包含配置信息的一切东西 比如说链接数据库 和mapper里面的sql(其实就是Configuration这个类里面会把配置文件里面的信息解析给你列好,

mybatis进行的所有操作都需要根据Configuration中的信息来进行,废话里面都是sql啊什么的)

接着上面说,我们生成了SqlSessionFactory工厂,这个工厂里面我们已经得到了配置文件的信息,

同时这个工厂里面除了有配置信息以外,还有SqlSession这个对象,SqlSession中有我们进行数据库操作的增删改查接口

sqlsessFactory接口

public interface SqlSessionFactory {

SqlSession openSession();

SqlSession openSession(boolean autoCommit);
SqlSession openSession(Connection connection);
SqlSession openSession(TransactionIsolationLevel level);

SqlSession openSession(ExecutorType execType);
SqlSession openSession(ExecutorType execType, boolean autoCommit);
SqlSession openSession(ExecutorType execType, TransactionIsolationLevel level);
SqlSession openSession(ExecutorType execType, Connection connection);

Configuration getConfiguration();

}

这个时候我们已经得到了配置的信息,最后我们就要开始执行了,这个时候我们建立好了链接,然后把sql拿进去,去调用mybatis的执行器就是

Executor这个接口,主要提供了update、query方法及事物相关的方法接口,我们SqlSession 对象会根据配置文件传入的执行器类型,然后去调用各种对应的方法去执行,

具体的实现方法我也不是太清楚这里留个链接有兴趣的可以去看看,https://blog.csdn.net/qq924862077/article/details/50437096。

 

posted @ 2018-05-15 10:38  好久不见你不知道的事  阅读(125)  评论(0编辑  收藏  举报