标题第一章:初始MyBatis
1.1框架技术
1.1.1为什么学习框架技术
使用框架构建项目也是基于这样的考虑。当确定使用那个技术框架后,就已经有了一个“半成品”,然后在这个半成品里面填上内容,工作就完成了。框架技术的优势如下:
(1) 不能再考虑公共问题,框架已经帮我们做好了。
(2) 可以专心于业务逻辑,保证核心业务逻辑的开发质量。
(3) 结构统一,便于学习和维护。
(4) 框架中集成了前人的经验,可以帮助新手写出稳定,性能优良而且结构优美的高质量程序。
1.1.2框架的概念
框架(Framework)是一个提供了可重用的公共结构的半成品。
1.1.3主流程框架的介绍
1.Struts 2框架
Struts 2以WebWork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的基于MVC设计模式实现的Web应用程序框架。
2.Hibernate框架
Hibernate是一个优秀的持久化框架,负责简化将对象数据保存到数据库中,或从数据库中读取数据并封存到对象的工作。
3.Spring框架
Spring也是一个开源框架。
4.SpringMVC框架
SpringMVC是Spring框架提供的构建Web应用程序的全功能MVC模块,属于Spring Framework的后续产品,已经融合再spring Web Flow里面,是结构最清晰的MVC Model2的实现。
5.MyBatis框架
MyBatis是一个优秀的数据持久层框架,在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现。
1.2MyBatis介绍及其环境搭建
1.2.1数据持久化概念
数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。
1.2.2MyBatis框架及ORM
1.MyBatis框架简介
MyBatis是一个开源的数据持久层框架。
2.什么是ORM
ORM(Object/Relational Mapping)即对象/关系映射,是一种数据持久化技术。
3.MyBatis是ORM解决方案
基于ORM,MyBatis在对象模型和关系数据库的表之间建立了一座桥梁,通过MyBatis建立SQL关系映射,以便捷地实现数据库存储,查询,更改和删除等操作。
1.2.3MyBatis环境搭建
1.下载需要的jar文件
MyBatis的官方网站是http://mybatis.org,可以下载最新Release版本的MyBatis,其他Release版本的MyBatis的jar文件都可以从官方网站下载得到。
2.部署jar文件
3.创建MyBatis核心配置文件configuration.xml
MyBatis核心配置文件主要用于数据库链接和MyBatis运行时所需的各种特性,包含了设置和影响MyBatis行为的属性。
4.创建持久化类(POJO)和SQL映射文件
持久化类是指其实列状态需要被MyBatis持久化到数据库中的类。
5.创建测试类
在工程中加入JUnit4,创建测试类(UserMapperTest.java)进行功能测试,并在后台打印出用户表的记录数,具体的实现步骤如下。
(1) 读取全局配置文件:mybatis-config.xml
(2) 创建SQL SessionFactory对象,此对象可以对配置文件的读取
(3) 创建SqlSession对象,此对象的作用是调用mapper文件进行数据操作,需要注意的是必须先把mapper文件引入到mybatis-config.xml才能奇效
(4) 关闭SqlSession对象。
1.2.4MyBatis框架的优缺点及其适用场合
1.MyBatis框架的优点
(1)与JDBC相比,减少了50%以上的代码
(2)MyBatis是最简单的持久化框架,小巧并且简单易学
(3)MyBatis相当灵活
2.MyBatis框架的缺点
SQL语句的编写工作量较大,开发人员编写SQL语句的功底有一点要求。
3.MyBatis框架适用场合
MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案
1.3MyBatis的基本要素-核心对象
1.3.1SqlSessonFactoryBuilder
1.SqlSessionFactoryBuilder的作用
SqlSessionFactoryBuilder负责构建SQL SessionFactory,并且提供了多个build()方法的重构。
2. SqlSessionFactoryBuilder的生命周期和作用域
SqlSessionFactoryBuilder的最大特点是:用过即丢。
1.3.2 SqlSessionFactory
- SqlSessionFactory的作用
SqlSessionFactory简单的理解就是创建SqlSession实例的工厂。 - SqlSessionFactory的生命周期和作用域
SqlSessionFactory对象一旦创建,就会在整个应用运行过程中始终存在。
1.3.3 SqlSession - SqlSession的作用
SqlSession是用于执行持久操作的对象,类似于JDBC中的Connection。 - SqlSession的生命周期和作用域
正如其名,SqlSession对应着一次数据库会话。 - SqlSession的两种使用方式
(1)通过SqlSession实例来直接执行已映射的SQL语句。
(2)基于mapper接口方式操作数据。
1.4MyBatis的基本要素-核心配置文件
1.4.1mybatis-config.xml文档结构
1.properties元素
Properties元素描述的都是外部化,可替代的属性。
2.settings元素
Settings元素的作用是设置一些非常重要的设置选项,用于设置和改变MyBatis运行中的行为。
3.typeAliases元素
typeAliases元素的作用是配置类型别名,通过于MyBatis的SQL映射文件相关联,减少输入多余的完整类名,默认名称为JavaBean的非限定类名。
4.environments元素
MyBatis可以配置多套运行环境,如开发环境,测试环境,生产环境等等,
5.mapper元素
Mapper:映射器,用来定义SQL的映射语句,我们只需要告诉MyBatis去哪里找到这些SQL语句,即去哪里找相对应的SQL映射文件。
1.4.2DTD文件的引入
1.DTD文件的位置
这两个DTD文件的位置在mybatis-3.2.2.jar里,以压缩包形式打开,DTD文件路径为mybatis-3.2.2\org\apache\ibatis\builder\xml,
2.新增XML Catalog