一、MyBatis框架持久化的概念
它支持自定义 SQL、存储过程以及高级映射。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索
二、MyBatis框架ORM简介的概念
ORM是一种在关系型数据库和面向对象编程语言之间进行数据转换的编程技术。
三、Mybatis的两个配置文件(SqlMapConfig.xml、mapper.xml)
SqlMapConfig.xml:SqlMapConfig.xml是MyBatis的全局配置文件。
Configuration:MyBatis框架的核心配置文件的根节点元素。
properties(属性):通过resource属性加载指定的外部文件或内部定义。
settings(全局配置参数):设置MyBatis框架运行时行为,本示例设置使用Log4j作为MyBatis框架的日志实现,需将log4j.properties,文件放置在resources目录下。
environments(环境集合属性对象):可以针对不同场景为MyBatis框架配置多组运行环境(每个environment子元素配置一直运行环境),同时须指定其中一个作为当前运行环境。
environment(环境子属性对象):为MyBatis框架配置一套运行环境,并为该环境指定唯一ID,其中包含事务管理器、数据源等相关配置。
mappers(映射器):配置SQL映射文件的位置。
mapper:mappers元素的子元素,其resource属性指定的是基于类路径的SQL映射文件位置。
四、MyBatis框架优缺点
下面以查询用户列表功能为例对比使用MyBatis框架与直接使用JDBC的实现方式。JDBC查询返回 ResultSet 对象,在分层架构下,该Resultset 对象不能被其他层的代码直接使用,需要将数据封装在 SvsUser 类型的数据模型中进行传递,而JDBC查询并不能直接得到 SvsUser 类型实例,这样在编码过程中就需要做很多重复烦琐的转换工作。MvBatis 框架则对这一过程进行了封装。
1.SqlSession 是对数据库连接的管理,包括事务管理。
2.MyBatis 框架通过 XML文件管理 SQL语句、查询条件及结果类型的映射。
3.MyBatis 框架实现查询结果集到Java 对象的封装。
MyBatis 框架的优点如下:
1.与直接使用JDBC相比,代码量减少50%以上
2.简单小巧且易学易用,能够快速上手应用。
3.基于原生 SQL,使用灵活,不会对数据库的现有设计产生任何影响,
4.SQL语句通过XML文件进行维护,与程序代码解耦,便于统一管理和优化,并可方便地
重用。
5.支持编写动态 SQL语句,与应用代码解耦。
6.支持Java 对象属性与查询结果集字段的映射(ORM)。
MyBatis 框架的缺点如下:
1.SQL语句的编写工作量较大,且对开发人员的SQL使用经验有一定要求。
2.原生 SQL语句依赖特定的数据库产品,导致数据库移植性差,不能方便地更换数据库
MyBats 框架专注于 SQL语句本身,是一个足够灵活的持久化层解决方案。对于需求变化较多、较频繁,或对性能有一定要求的项目,如互联网项目,MyBatis 框架将是一个不错的选择。
五、MyBatis框架基本要素如下:
1.核心接口和类
2.核心配置文件(mybatis-config.xml)。
3.SQL映射文件。
六、MyBatis框架核心对象
1.SqlSessionFactory实例是 MyBatis 框架应用程序的核心。
2.SqlSessionFactory实例由SqlSessionFactoryBuilder 对象根据 XML 配置文件或Configuration 类的实例进行构建。