Mybatis框架运行原理

1、Mybatis运行原理图:

Mybatis框架运行原理_第1张图片

2、Mybatis测试类代码:

public class MybatisTest {
	
	//根据id查询用户信息,得到一条记录
	@Test
	public void findUserById() throws IOException {
		//mybatis配置文件
		String resource = "SqlMapConfig.xml";
		
		InputStream inputStream = Resources.getResourceAsStream(resource);
		
		//创建会话工厂SqlSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//通过工厂得到SqlSession
		SqlSession sqlSession = sqlSessionFactory.openSession();
		
		//通过SqlSession操作数据库(通过id添加记录)
		//第一个参数:映射文件中statement的id,等于namespace+"."+statement的id
		//第二个参数:指定和映射文件中所匹配的parameterType类型的参数
		User user = sqlSession.selectOne("test.findUserById",1);
		
		System.out.println(user);
		
		//释放资源
		sqlSession.close();
	} 

3、SqlMapConfig.xml配置文件




	
	
		
	
	
	
	
	
	
	
		
	

    
    
        
        	
        	
        	
        	
                
                
                
                
            
        
    
    
    
    
    	
    	
    

 

4、执行流程:

        1)在MyBatis运行开始时需要先通过Resources加载全局配置文件.下面需要实例化SqlSessionFactoryBuilder构建器.帮助SqlSessionFactory接口实现类DefaultSqlSessionFactory.

      2)在实例化DefaultSqlSessionFactory之前需要先创建XmlConfigBuilder解析全局配置文件流,并把解析结果存放在Configuration中.之后把Configuratin传递给DefaultSqlSessionFactory.到此SqlSessionFactory工厂创建成功. 

        3)SqlMapConfig.xml(mybatis的全局配置文件):配置了数据源、事务等运行环境,配置了映射文件(sql语句)

        4)SqlSessionFactory(会话工厂):创建SqlSession

        5)SqlSession(会话--面向用户的接口):操作数据库(根据sql进行增、删、改、查)

        6)Executor(执行器--接口):SqlSession内部通过执行器操作数据库

        7)Mapped statement(底层封装对象):对操作数据库存储封装,包括sql语句、输入参数、输出参数。

        

你可能感兴趣的:(JavaEE专区)