Mybatis和jdbc的执行流程

JDBC(Java Data Base Connectivity, Java 数据库连接)是一种用于执行 SQL 语句的 Java API,是 Java 应用连接各种关系型数据库的基本的接口。可以为多种关系数据库提供统一访问。

JDBC执行过程
一:引包

在执行JDBC前,首先我们要导入MySQL jar包

创建文件夹lib,并导入该包

二:加载驱动

Class.forName(“com.mysql.jdbc.Driver”);

三:建立连接

connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root");

 四:创建语句

statement = connection.createStatement();

五:执行语句

resultSet= statement.executeQuery(sql);

六:处理结果

rowMapper.rowMapper(resultSet);

七:释放资源
关闭所有的数据库资源以减少资源的浪费

一、MyBatis的重要组件

Mybatis底层封装了JDBC,使用了动态代理模式。

1.SqlSessionFactoryBuilder (构造器):使用Builder模式根据mybatis-config.xml配置或者代码来生成SqISessionFactory。

2.SqlSessionFactory (工厂接口):使用工厂模式生成SqlSession。

3.SqlSession (会话): 一个既可以发送 SQL 执行返回结果,也可以获取Mapper的接口。

4.SQL Mapper (映射器): 它由一个Java接口和XML文件(或注解)构成,需要给出对应的SQL和映射规则,它负责发送SQL去执行,并返回结果。

5.Executor(执行器)是MyBatis的核心,负责SQL语句的生成和查询缓存的维护,它将根据SqlSession传递的参数动态地生成需要执行的SQL语句,同时负责查询缓存的维护

6.MappedStatement 是对解析的SQL的语句封装,一个MappedStatement代表了一个sql语句标签

Mybatis工作流程

1.读取MyBatis的核心配置文件。mybatis-config.xml为MyBatis的全局配置文件,用于配置数据库连接、属性、类型别名、类型处理器、插件、环境配置、映射器(mapper.xml)等信息

2.SqlSessionFactoryBuilder接受SqlMapConfig.xml文件流,构建出SqlSessionFactory对象

3.通过SqlSessionFactory创建SqlSession对象

4.SqlSession使用JDK动态代理为Mapper接口生成代理对象proxy,代理对象会拦截接口方法,根据类的全限定名+方法名,唯一定位到一个MapperStatement并调用执行器生成和执行sql,然后将sql执行结果返回

Guess you like

Origin blog.csdn.net/weixin_46217160/article/details/121387025