Mybatis框架原理?

1、测试类代码:

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();
	} 

2、SqlMapConfig.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!-- 加载properties配置文件 -->
	<properties resource="db.properties">
		<!-- 注意:不要在properties下的property中添加属性-->
	</properties>
	
	<!-- 全局配置参数 -->
	<!-- <settings>
	</settings> -->
	
	<!--批量定义别名 (常用)
	    批量定义时别名默认为类名(大小写均可)
	-->
	<typeAliases>
		<package name="com.sunhui.mybatis.pojo"/>
	</typeAliases>

    <!-- 声明数据连接环境 -->
    <environments default="development">
        <environment id="development">
        	<!-- 配置jdbc事务管理-事务控制由mybatis来管理 -->
        	<transactionManager type="JDBC" />
        	<!-- 配置数据源 -->
        	<dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>
    
    <!-- 引入mapper映射文件 -->
    <mappers>
    	<!--批量加载maper映射文件   常用!!!方便
    	    指定mapper接口的包名,mybatis自动扫描这个包下面的所有mapper接口
    	    同时也必须遵循上面的规范
    	 -->
    	<package name="com.sunhui.mybatis.mapper"/>
    </mappers>
</configuration>

3、执行流程:

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

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

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

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

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

        

猜你喜欢

转载自blog.csdn.net/qq_37896194/article/details/80899761