初识MyBatis

前言

首先我们来了说一下mybits这个框架吧。这是一个持久层的框架。之前叫做ibatis。所以,在它的代码中出现ibatis这个词的时候,不是写错了,它就是这样。

框架技术

为什么学习框架(框架的优势)
  1. 不用考虑公共问题,框架已帮我们做好
  2. 可以专心业务逻辑,保证核心腋业务逻辑的开发质量
  3. 结构统一,便于学习和和维护
  4. 框架中集成了前辈们的经验,可以帮新手写出稳定,性能优良而且结构优美的高质量程序。
框架的概念

框架:(Framework)提供可重用的公共结构的半成品,为我们构建新的应用程序提供极大的便利。

主流框架介绍
  1. Struts 2 框架
  2. Hibernate 框架
  3. Spring 框架
  4. SpringMVC 框架
  5. MyBatis框架

MyBatis介绍及其环境搭建

数据持久化概念

持久化是程序数据在瞬时状态和持久状态间转换的过程

MyBatis框架及ORM
  1. MyBatis框架简介

    首先,我们来看看mybatis是个什么东东,它有什么用?我们为什么要学习它。mybatis是一个持久层的框架。所谓的持久层,就是我们三层中的dao层。主要负责跟数据库进行交互。可以建立数据库表和系统中的对象的一对一映射关系。这种框架我们称之为orm框架。但是mybatis框架需要自己写sql语句,且不能像hibernate那样自动生成sql语句,并且建立实体类和数据库的映射。所以我们说它是不完全的orm框架。

  2. 什么是ORM

    ORM(Object/Relational Mapping) 即对象/关系映射,是一数据持久化操作,对DAO方法进行SQL映射。
    (1)编写程序的时候,以面向对象的方式处理数据
    (2)保存数据的时候,却以关系型数据库的方式存储

  3. 那么,mybatis这个框架都可以做些什么呢?

    这个其实也很简单。无非是对数据库的增删改查。这是每个持久层框架都应该支持的事情。sql语句可以干的事情,mybatis基本上都可以做。


使用MyBatis的开发步骤
  1. 下载mybatis-3.2.2.jar包并导入工程
  2. 编写MyBatis核心配置文件(configuration.xml)
  3. 创建实体类-POJO
  4. DAO层-SQL映射文件(mapper.xml)
  5. 创建测试类
    (1) 读取核心配置文件mybatis-config.xml
    (2) 创建SqlSessionFactory对象,读取配置文件
    (3) 创建SqlSession对象
    (4) 调用mapper文件进行数据操作

MyBatis环境搭建

MyBatis环境准备步骤

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

步骤详讲

1. 下载需要jar文件

初识MyBatis_第1张图片

  • lib下存放编译依赖包,如图
    初识MyBatis_第2张图片
  • mybatis-3-mybatis-3.2.2(MyBatis源码包)
2. 部署jar文件
  • 将下载的jar放入 lib 文件夹
3. 创建MyBatis核心配置文件configuration.xml

(1)MyBatis主要配置数据库连接和MyBatis运行时所需的各种特性。
(2)为了方便以后各框架集成所需的配置文件,许在项目 新减 Source Folder 类型的 resources 目录,并在此目录添加MyBatis核心配置配置文件,“configuration.xml”,大但为了更好的区分各个配置文件,一般将文件命名为“MyBatis-config.xml”

MyBatis-config.xml常用元素
(1)configuration:配置文件根元素节点
(2)properties:通过resource属性引用外部的properties属性文件 (database.properties),该文件存放连接数据库的基本配置。
(3)setting:设置MyBatis运行的行为,比如此处设置MyBatis的log日志实现为LOG4J,即使用log4j实现日志功能。
(4)environments:配置MyBatis多套运行环境,将sql映射到多个不同的数据库上,该元素节点下可以配置多个environment子节点,但是必须指定其中一个默认运行环境(通过的的fault指定)
(5)environment:配置MyBatis一套运行环境,指定运行环境的id,事务管理,数据源配置信息。
(6)mappers:作用告诉MyBatis去哪里找到SQL映射文件(该文件内容是开发者定义的映射SQL语句),整个项目可以有一个或者多个SQL映射文件
(7)mapper:mappers子元素节点,具体指定SQL映射文件路径

注意:

MyBatis-config.xml元素节点是有一定顺序,节点顺序若不安顺序排位那么xml文件会报错。

4. 创建持久化类(POJO)和SQL映射文件

注意:在MyBatis,不需要POJO类名与与数据库表名一致,应为MyBatis是POJO与SQL语句之间的映射机制,一般情况下,保证POJO对象的属性与数据库表的字段一致即可。
经验:SQL映射文件一般相对于POJO,所以一般采用POJO名称+Mapper的规则命名。当然mapper属于DAO层操作,应该放置dao包下。

mapper.xml元素
  1. mapper:映射文件根元素节点,只有一个属性namespace
    (1)namespace:用于区分不同的mapper,全局唯一
  2. select 表示查询语句,是MyBatis最常用的元素之一
    (1)id属性该命名空间下唯一的标识
    (2)resultType属性:表示SQL语句返回值类型。
5. 创建测试类

MyBatis优缺点及适用场景

优点
  1. 与JDBC相比,减少了50%以上的代码量
  2. 最简单的持久化框架,小巧并简单易学
  3. SQL代码从程序代码中彻底分离,可重用
  4. 提供XML标签,支持编写动态SQL
  5. 提供映射标签,支持对象与数据库的ORM字段映射
缺点
  1. SQL语句编写工作量大,对开发人员有一定要求
  2. 数据库移植性差
适用于
  1. MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案,适用于性能要求较高或者需求多变的互联网项目

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

以上内容,我们队MyBatis有了初步认识,下面学习MyBatis三个基本要素

  1. 核心接口和类
    (1)SqlSessionFactoryBuilder
    (2)SqlSessionFactory
    (3)SqlSession

  2. MyBatis核心配置文件(MyBatis-congif.xml)

  3. SQL映射文件(mapper.xml)

首先介绍MyBatis核心接口和类

1. SqlSessionFactoryBuilder

(1)作用:负责构建SqlSessionFactory,并且提供多个build()
(2)声明周期作用域:最大的特点,用过即丢,其生命周期只存在于方法体内SQLSessionFactory对象之后,这个类就不在需要存在了,所以他的范围存在方法体内,也就是局部变量而已。

2. SqlSessionFactory

(1)作用:SQLSessionFactory简单理解为SqlSession实例工厂。(创建SqlSession实例)

SqlSession session = sqlSessionFactory.openSession(boolean autoCommit);	

boolean autoCommit(参数)
true:关闭事务控制(默认,不传入参数)
false:开启事务控制

(2)作用域:Application。生命周期与应用的生命周期相同

3. SqlSession

(1)作用:执行持久化操作,类似于JDBC中的Connection提供执行Sql命令所需的所有方法,可以通过Sqlsession实例直接映射到SQL语句。

  • 包含了执行SQL所需的所有方法
  • 对应一次数据库会话,会话结束必须关闭
  • 线程级别,不能共享

注意
在SqlSession里可以执行多次SQL语句,但一旦关闭了SqlSession就需要重新创建


MyBatis的基本要素——核心配置文件

学习MyBatis核心对象后,学习他的核心配置文件(MyBatis-config.xml)

MyBatis-config.xml文件结构

初识MyBatis_第3张图片

  1. 配置properties元素的两种方式
    通过外部指定的方式(database.properties),实现动态配置
    直接配置为xml,实现动态配置

  2. setting元素
    用来修改MyBatis运行时的行为方式
    主要是MyBatis的一些全局配置属性的设置
    初识MyBatis_第4张图片

  3. typeAliases元素
    类型别名
    仅仅只关联XML配置,简写冗长的Java类名


	


	     默认名称:指定包下JavaBean的非限定类名

  1. environments元素
    表示配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上
    子元素节点:environment,但是必须指定其中一个为默认运行环境(通过default指定)
    注意:每个SqlSessionFactory实例只能选择一个运行环境
	
	
	
	
	    		
	  		 
	    		
	    		
	
	
	
	……
	
	

  1. mappers元素
    映射器,定义SQL映射语句
    须在配置中引用mapper映射文件
    方式一:使用类资源路径获取资源


	


方式二:使用URL获取资源


		
		


总结

初识MyBatis_第5张图片

你可能感兴趣的:(初识MyBatis)