简述mybatis执行流程都有哪些?

TheDisguiser 2020-06-14 09:26:59 java常见问答 4056

小伙伴们肯定都知道mybatis吧,那你们知道mybatis是如何执行的吗?下面小编就为你讲解一下mybatis的执行流程吧。

mybatis执行流程分析

XML配置文件编写 -------> XML映射文件编写 -------> 编码

一、XML配置文件与XML映射文件编写

1)、mybatis-config.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>
    <!--一个配置文件中可以配置多个数据库连接环境,default用来指定默认使用的数据库环境-->
<environments default="oracle">
        <!--id用来唯一标识每个数据库环境-->
<environment id="oracle">
            <!--这个配置就是直接使用了JDBC的提交和回滚设置-->
<transactionManager type="JDBC" />
            <!--使用mybatis内置的简单数据库连接池对connection进行管理-->
<dataSource type="POOLED">
                <!--JDBC四要素-->
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@//127.0.0.1:1521/orcl" />
<property name="username" value="scott" />
<property name="password" value="tiger" />
</dataSource>
</environment>
</environments>
</configuration>

2)、city.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace,命名空间,用来对多个映射文件中相同的SQL进行区分,功能类似于Java中的package概念-->
<mapper namespace="CityMapper">
    <!--返回类型-->
<select id="findById" resultType="com.turing.bean.City">
select * from city where id=#{id}
</select>
</mapper>

city.xml映射文件编写完以后,需要在mybatis-config.xml配置文件尾部增加如下信息:

</environments>
	<mappers>
        <!--注册映射文件,告诉mybatis到哪里去找这些sql语句-->
		<mapper resource="com/turing/mapper/city.xml"/>
	</mappers>
</configuration>

二、代码实现

public static void main(String[] args) throws IOException
{
    //依据配置文件制定的信息实例化会化工厂
    InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
    SqlSessionFactory factory = new SqlSessionFactoryBuilder()
        .build( in );
    //开启会话
    SqlSession session = factory.openSession();
    //调用session提供的API,传入SQL的id和参数
    City city = session.selectOne("CityMapper.findById", 4);
    System.out.println(city);
    //关闭会话
    session.close();
}

以上就是mybatis执行流程全部内容,如果小伙伴们还要疑问,可以关注我们的网站来了解其他mybatis常见问题

推荐阅读:

mybatis转义字符有哪些?mybatis动态SQL要如何编写?

mybatis的使用需要用到什么?java使用mybatis

mybatis配置文件总结,解决文件配置困惑