有关mybatis知识点解析 mybatis调用存储过程( 二 )


都是对jdbc的封装,都是持久层的框架,都用于dao层的开发 。
不同点
映射关系
MyBatis 是一个半自动映射的框架,配置Java对象与sql语句执行结果的对应关系,多表关联关系配置简单Hibernate 是一个全表映射的框架,配置Java对象与数据库表的对应关系,多表关联关系配置复杂SQL优化和移植性
Hibernate 对SQL语句封装,提供了日志、缓存、级联(级联比 MyBatis 强大)等特性,此外还提供 HQL(Hibernate Query Language)操作数据库,数据库无关性支持好,但会多消耗性能 。如果项目需要支持多种数据库,代码开发量少,但SQL语句优化困难 。MyBatis 需要手动编写 SQL,支持动态 SQL、处理列表、动态生成表名、支持存储过程 。开发工作量相对大些 。直接使用SQL语句操作数据库,不支持数据库无关性,但sql语句优化容易 。开发难易程度和学习成本
Hibernate 是重量级框架,学习使用门槛高,适合于需求相对稳定,中小型的项目,比如:办公自动化系统MyBatis 是轻量级框架,学习使用门槛低,适合于需求变化频繁,大型的项目,比如:互联网电子商务系统总结
MyBatis 是一个小巧、方便、高效、简单、直接、半自动化的持久层框架,Hibernate 是一个强大、方便、高效、复杂、间接、全自动化的持久层框架 。MyBatis的解析和运行原理MyBatis编程步骤是什么样的?
1、 创建SqlSessionFactory
2、 通过SqlSessionFactory创建SqlSession
3、 通过sqlsession执行数据库操作
4、 调用session.commit()提交事务
5、 调用session.close()关闭会话
请说说MyBatis的工作原理 在学习 MyBatis 程序之前,需要了解一下 MyBatis 工作原理,以便于理解程序 。MyBatis 的工作原理如下图
1)读取 MyBatis 配置文件:mybatis-config.xml 为 MyBatis 的全局配置文件,配置了 MyBatis 的运行环境等信息,例如数据库连接信息 。
2)加载映射文件 。映射文件即 SQL 映射文件,该文件中配置了操作数据库的 SQL 语句,需要在 MyBatis 配置文件 mybatis-config.xml 中加载 。mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表 。
3)构造会话工厂:通过 MyBatis 的环境等配置信息构建会话工厂 SqlSessionFactory 。
4)创建会话对象:由会话工厂创建 SqlSession 对象,该对象中包含了执行 SQL 语句的所有方法 。
5)Executor 执行器:MyBatis 底层定义了一个 Executor 接口来操作数据库,它将根据 SqlSession 传递的参数动态的生成需要执行的 SQL 语句,同时负责查询缓存的维护 。
6)MappedStatement 对象:在 Executor 接口的执行方法中有一个 MappedStatement 类型的参数,该参数是对映射信息的封装,用于存储要映射的 SQL 语句的 id、参数等信息 。
7)输入参数映射:输入参数类型可以是 Map、List 等集合类型,也可以是基本数据类型和 POJO 类型 。输入参数映射过程类似于 JDBC 对 preparedStatement 对象设置参数的过程 。
8)输出结果映射:输出结果类型可以是 Map、 List 等集合类型,也可以是基本数据类型和 POJO 类型 。输出结果映射过程类似于 JDBC 对结果集的解析过程 。
MyBatis的功能架构是怎样的我们把Mybatis的功能架构分为三层:
API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库 。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理 。数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等 。它主要的目的是根据调用的请求完成一次数据库操作 。基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件 。为上层的数据处理层提供最基础的支撑 。MyBatis的框架架构设计是怎么样的这张图从上往下看 。MyBatis的初始化,会从mybatis-config.xml配置文件,解析构造成Configuration这个类,就是图中的红框 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: