1、MyBatis工作原理
MyBatis操作数据库流程分为8个步骤,具体介绍如下:
(1)MyBatis读取核心配置文件mybatis-config.xml
mybatis-config.xml核心配置文件主要配置了MyBatis的运行环境等信息。
(2)加载映射文件Mapper.xml
Mapper.xml文件即SQL映射文件,该文件配置操作数据库的SQL语句,需要在mybatis-config.xml中加载才能执行。mybatis-config.xml可以加载多个映射文件,每个映射文件对应数据库中的一张表。
(3)构造会话工厂
通过MyBatis的环境等配置信息构建会话工厂SqlSessionFactory,用于创建SqlSession。
(4)创建会话对象
由会话工厂SqlSessionFactory创建SqlSession对象,该对象中包含了执行SQL语句的所有方法。
(5)创建执行器
会话对象本身不能直接操作数据库,MyBatis底层定义了一个Executor接口用于操作数据库,执行器会根据SqlSession传递的参数动态的生成需要执行的SQL语句,同时负责查询缓存地维护。
(6)封装SQL信息
SqlSession内部通过执行器Executor操作数据库,执行器将待处理的SQL信息封装到MappedStatement对象中,MappedStatement对象中存储了要映射的SQL语句的id、参数等。Mapper.xml文件中一个SQL语句对应一个MappedStatement对象,SQL语句的id即是MappedStatement的id。Executor执行器会在执行SQL语句之前,通过MappedStatement对象将输入的参数映射到SQL语句中。
(7)操作数据库
根据动态生成的SQL操作数据库。
(8)输出结果映射
执行SQL语句之后,通过MappedStatement对象将输出结果映射至Java对象中
2、初识框架
2.1框架概述
软件框架是一种通用的、可复用的软件环境,它提供特定的功能,助力软件应用、产品和解决方案的开发工作。软件框架包含支撑程序、编译器、代码、库、工具集和API,它把这些部件汇集在一起,以支持项目或系统的开发。(“框架”Framework一词最早出现在建筑领域,是指建造房屋前期所构建的建筑骨架。)
2.2框架优势(相比于JSP+Servlet技术进行软件开发,使用框架有以下优势)
(1)提升开发效率
(2)提高代码规范性和可维护性
(3)提高软件性能
2.3当前主流框架
Spring框架、Spring MVC框架、MyBatis框架、Spring Boot框架、Spring Cloud框架
(1,Spring框架
Spring框架是一个开源框架,是为了解决企业应用程序开发复杂这一难题而创建的,其主要优势之一就是分层架构。同时,Spring之所以与Struts、Hibernate等单层框架不同,是因为Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架组合在一起建立一个连贯的体系。Spring提供了更完美的开发环境,可以为POJO(Plain Ordinary Java Object,普通Java对象)提供企业级的服务。
(2,Spring MVC框架
Spring MVC是Spring提供的一个基于MVC设计模式的Web开发框架,是Spring家族中应用于Web应用的一个模块,可以将它理解为Servlet。在MVC模式中,Spring MVC作为控制器(Controller)用于实现模型与视图的数据交互,是结构非常清晰的JSP Model2实现,即典型的MVC框架。
Spring MVC框架采用松耦合、可插拔的组合结构,具有出色的可配置性,与其他的MVC框架相比,Spring MVC具有更强的扩展性和灵活性。此外,Spring MVC本身就是Spring家族的一部分,可以与Spring框架无缝集成,因此,Spring MVC在互联网开发中应用得越来越广泛。
(3,MyBatis框架
MyBatis原本是Apache的一个开源项目iBatis,2010年这个项目由Apache Software Foundation迁移到了Google Code,并改名为MyBatis,2013年11月MyBatis又被迁移到GitHub。MyBatis是一个优秀的持久层框架,它可以在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM(Object Relational Mapping,对象关系映射)实现。MyBatis封装性要低于Hibernate,但它性能优越、简单易学,在互联网应用的开发中被广泛使用。
(4,Spring Boot框架
Spring Boot框架是Pivotal团队基于Spring开发的全新框架,其设计初衷是为了简化Spring的配置,使用户能够构建独立运行的程序,提高开发效率。Spring Boot框架本身并不提供Spring框架的核心特性及扩展功能,它只是用于快速、敏捷地开发新一代基于Spring框架的应用,同时它还集成了大量的第三方类库(如Jackson、JDBC、Redis等),使用户只需少量配置就能完成相应功能。
(5,Spring Cloud框架
Spring Cloud是一系列