数据持久化是将内存中的数据模型转化为储存模型,以及将存储模型转换为内存中的数据模型的统称。例如,文件的存储,数据的读取等都是数据持久化操作。数据持久化操作。数据模型可以是任何数据结构或对象模型,存储模型可以是关系型模型、XML、二进制流等。
MyBatis是一个开源的数据持久化层框架。它内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询,存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis作为持久化层框架,其主要思想是将程序中的大量SQL语句剥离出来,配置在配置文件中,实现SQL的灵活配置。这样做的好处是将SQL与程序代码分离,可以在不修改程序代码的情况下,直接配置文件中修改SQL。
ORM(Object/Relational Mapping)即对象/关系映射,是一种数据持久化技术。它在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制,通过JavaBean对象去操作数据库中的数据。
1.下载jar包 | 2.部署jar包 | 3.编写MyBatis核心配置文件 | 4.创建实体类 | 5.创建DAO接口 | 6.创建SQL映射文件 | 7.编写测试类 |
MyBatis的官方网站是http://mybatis.org,可以下载到最新Release版本的MyBatis,其他Release版本的MyBatis的jar文件都可以从官网站下载得到。
MyBatis框架优点:
MyBatis框架缺点:
MyBatis框架适用场合:
MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案。对性能的要求很高,或者需求变化较多的项目。
SqlSessionFactoryBuilder的作用:
SqlSessionFactoryBuilder负责构建SqlSessionFactory,并且提供了多个build()方法的重载。
SqlSessionFactoryBuilder的生命周期和作用域:
SqlSessionFactoryBuilder的最大特点是:用过即丢。一旦创建了SqlSessionFactory对象之后,这个类就不再需要存在了,因此SQL SessionFactoryBuilder的最佳范围就是存在方法体内,也就是局部变量而已。
SqlSessionFacory的作用:
SqlsessionFactory简单的理解就是创建SqlSession实例工厂,所有的MyBatis应用都是以SqlSessionFactory实例为中心,SqlSessionFactory的实例可以提供的SqlSessionFactoryBuilder对象来获得。有了他之后,就可以通过SqlSessionFactory提供的openSession()方法来获取实例。
SqlSessionFacory的生命周期和作用域
SqlSessionFactory对象一旦创建,就会在整个应用运行过程中始终存在。没有理由去销毁或在创建它,并且在应用运行中也不建议多创建SqlSessionFactory。因此SqlSessionFactory的最佳作用域是Application,即随着应用的生命期一同存在。那么这种“岑在于整个应用运行期间,并且同时只存在一个对象实例”的模式就是所谓的单例模式(指在应用运行期间且仅有一个实例)。
SqlSession的作用
SqlSession是用于执行持久化操作的对象,类似于JDBC中的Connection。它提供了面向对象数据库执行SQL命令所需要的所有方法,可以通过SqlSession实例直接运行已映射的SQL语句。
SqlSession的生命周期和作用域
正如其名,SqlSession对应着一次数据库会话。由于数据库会话不是永久的,因此SqlSession的生命周期也不应该是永久的。相反,在每次访问数据库时都需要创建它(注意:并不是说在SqlSession里只能执行一次SQL,是完全可以执行多次的,但是若关闭了SqlSession,那么就需要重新创建它)。创建SqlSession的地方只有一个,那就是SqlSessionFactory对象的openSession()方法。
mybatis-config.xml文件结构
configuration配置 properties 可以配置Java属性文件中 settings 修改MyBatis在运行时的行为方式 typeAliases 为Java类型命名一个别名(简称) typeHandlers 类型处理器 objectFactory 对象工厂 plugins 插件 envirnments 环境 envirnment 环境变量 transactionManager 事务管理器 dataSource 数据源 mappers 映射器 |
mybatis-config.xml |
properties元素
properties元素描述的都是外部化、可替代的属性。
Setting元素
settings元素的作用是设置一些非常重要的设置选项,用于设置和改变MyBatis运行中的行为。
typeAliases元素
typeAliases元素的作用时配置类型别名,通过MyBatis的SQL映射文件相关联,减少输入多余的完整类名。
environments元素
MyBatis可以配置多套运行环境,如开发环境、测试环境、生产环境我们可以灵活选择不同的配置,从而将SQL映射应用到不同的数据库环境上。这些不同运行环境,就是通过environments元素来配置,但是不管增加几套运行环境,都是必须说明确选择当前的唯一一个运行环境。
mappers元素
mappers:映射器,用来定义SQL的映射语句,我们只需要告诉MyBatis去哪找到这些SQL语句,即去哪里找相应的SQL映射文件。