6、Mybatis流程
2021-02-19 10:35:38 1 举报
使用Mybatis进行查询数据,并获取数据的流程图
作者其他创作
大纲/内容
MybatisMain.main启动Mybatis类
创建SQL语句执行器
创建事务处理工厂
propertiesElement(root.evalNode(\"properties\"));
MbGoods goods =mapper.selectById(\"1\");
2、获取SqlSession
通过DefaultSqlSessionFactory去创建DefaultSqlSession(这个类不是线程安全的)
3、获取mapper
new SqlSessionFactoryBuilder().build(reader)
SqlSessionFactoryBuilder.build() = {parser.parse()}
mapperElement(root.evalNode(\"mappers\"));
sqlSessionFactory.openSession()
mapperParser.parse();bindMapperForNamespace();
parseConfiguration(parser.evalNode(\"/configuration\"));
利用DefaultSqlSeesionFactory创建DefaultSqlSession
读取配置文件
parser.parse()
1、创建SqlSessionFactory
通过MapperProxy中的方法进行执行sql语句
environmentsElement(root.evalNode(\"environments\"));
Resources.getResourceAsReader(resource)
主要是创建了DefaultSqlSessionFactory这个类,此类包含通过JDBC与数据库建立连接,以及提交事务等操作
XMLConfigBuilder.java
Properties settings = settingsAsPropertiess(root.evalNode(\"settings\"));
configuration.addMapper(boundType);
mapperRegistry.addMapper(type);
创建SqlSessionFactory
XMLConfigBuilder.parseConfiguration(XNode root)进行解析xml文件内容,主要设置environments(环境参数中)、DataSource(数据源)、mappers(需要读取的mapper.xml文件)
解析xml
build(Configuration config)
4、执行数据库操作,并处理结果数据集
XMLMapperBuilder.java
TransactionFactory transactionFactory = getTransactionFactoryFromEnvironment(environment);
1、从knownMappers<Class,MapperProxyFactory>获取mapperProxyFactory2、再通过mapperProxyFactory反射生成MapperProxy
。。。。。。。。
进行设置运行环境,其中包含将数据库连接放入
创建一个SqlSession
MapperRegistry.java
通过Configuration中配置的resource,解析配置的mappers,读取其中的namespace,且通过反射得到class,并将其设置到mapperRegistry中mapperRegistry<类的全路径名称,class类>
MbGoodsMapper mapper = sqlSession.getMapper(MbGoodsMapper.class);
0 条评论
下一页