初始MyBatis

数据持久化概念

数据持久化是将内存中的数据模型转化为储存模型,以及将存储模型转换为内存中的数据模型的统称。例如,文件的存储,数据的读取等都是数据持久化操作。数据持久化操作。数据模型可以是任何数据结构或对象模型,存储模型可以是关系型模型、XML、二进制流等。

MyBatis框架

MyBatis是一个开源的数据持久化层框架。它内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询,存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis作为持久化层框架,其主要思想是将程序中的大量SQL语句剥离出来,配置在配置文件中,实现SQL的灵活配置。这样做的好处是将SQL与程序代码分离,可以在不修改程序代码的情况下,直接配置文件中修改SQL。

ORM

ORM(Object/Relational Mapping)即对象/关系映射,是一种数据持久化技术。它在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制,通过JavaBean对象去操作数据库中的数据。

MyBayis搭建环境

1.下载jar包 2.部署jar包 3.编写MyBatis核心配置文件 4.创建实体类 5.创建DAO接口 6.创建SQL映射文件 7.编写测试类

 

下载需要的jar文件

MyBatis的官方网站是http://mybatis.org,可以下载到最新Release版本的MyBatis,其他Release版本的MyBatis的jar文件都可以从官网站下载得到。

MyBatis框架优缺点和使用场合

MyBatis框架优点:

  1. 与JDBC相比,减少50%的代码量
  2. MyBatis是最简单的持久化框架,小巧且简单易学
  3. MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理的优化,并可重用
  4. 提供XML标签,支持编写动态SQL语句
  5. 提供映射标签,支持对象与数据库的ORM字段关系映射

MyBatis框架缺点:

  1. SQL语句的编写工作量较大,对开发人员编写SQL语句的功底有一定要求
  2. SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库

MyBatis框架适用场合:

MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案。对性能的要求很高,或者需求变化较多的项目。

MyBatis的基本要素——核心对象

  • 核心接口和类
  • MyBatis核心配置文件(mybatis-config.xml)
  • SQL映射文件

MyBatis的核心接口和类

  1. SqlSessionFactoryBuilder
  2. SqlSessionFactory
  3. SqlSession
  • 每个Mybatis的应用程序都可以一个SqlSessionFactory对象的实例为核心。
  • 首先获取SqlSessionFactoryBuilder对象,可以根据XML配置文件或者Configuration类的实例构建对象。
  • 然后获取SqlSessionFactory对象,该对象实例可以通过SqlSessionFactoryBuilder对象来获得。
  • 有了SqlSessionFactory对象之后,就可以进而获取SqlSession实例,SqlSession对象中完全包含以数据库为背景的所有执行SQL操作的方法,可以用该实例来直接执行已映射的SQL语句

SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession作用生命周期和作用域

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的基本要素——核心配置文件

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映射文件。

 

 

 

 

 

你可能感兴趣的:(MyBatis)