Mybatis知识总结目录

  • 1. 软件开发常用结构
  • 1.1 三层架构
  • 1.2 常用框架
  • 2. 框架的概念
  • 2.1 框架定义
  • 2.2 框架解决的问题
  • 2.3 JDBC的缺陷
  • 3. MyBatis框架概述
  • 3.1 MyBatis框架解决的主要问题
  • 3.2 MyBatis框架的结构


1. 软件开发常用结构

1.1 三层架构

  三层架构包含的三层:
    界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)

  • 三层的职责
  • 界面层(表示层,视图层) :主要功能是接收用户的数据,显示请求的处理结果。使用 web 页面和用户交互,手机 app 也就是表示层的,用户在 app 中操作,业务逻辑在服务器端处理。
  • 业务逻辑层:接收表示传递过来的数据,检查数据,计算业务逻辑,调用数据访问层获取数据。
  • 数据访问层:与数据库打交道。主要实现对数据的增、删、改、查。将存储在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库.

三层的处理请求的交互:

    客户端<—>界面层<—>业务逻辑层<—>数据访问层<—>数据库。

如图

系统架构之业务逻辑层 业务层 逻辑层 应用层_java

使用三层架构原因:

1.结构清晰、耦合度低, 各层分工明确
2.可维护性高,可扩展性高
3.有利于标准化
4.开发人员可以只关注整个结构中的其中某一层的功能实现
5.有利于各层逻辑的复用

1.2 常用框架

MyBatis 框架

不需要处理加载驱动、创建连接、创建 statement、关闭连接,资源等繁杂的过程。
    MyBatis 通过或注解两种方式将要执行的各种 sql 语句配置起来,并通过 java 对象和 sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并返回。

Spring 框架

    Spring 框架为了解决软件开发的复杂性而创建的。Spring 使用的是基本的 JavaBean 来完成以前非常复杂的企业级开发。Spring 解决了业务对象,功能模块之间的耦合,不仅在 javase,web 中使用, 大部分 Java 应用都可以从 Spring 中受益。
    Spring 是一个轻量级控制反转(IoC)和面向切面(AOP)的容器。

SpringMVC 框架

    Spring MVC 属于 SpringFrameWork 3.0 版本加入的一个模块,为 Spring 框架提供了构建 Web 应用程序的能力。现在可以 Spring 框架提供的 SpringMVC 模块实现 web 应用开发,在 web 项目中可以无缝使用 Spring 和 Spring MVC 框架。

2. 框架的概念

2.1 框架定义

应用骨架、模板。
    简单的说,框架其实是半成品软件,就是一组组件,供你使用完成你自己的系统。从另一个角度来说框架一个舞台,你在舞台上做表演。在框架基础上加入你要完成的功能。
框架安全的,可复用的,不断升级的软件。

2.2 框架解决的问题

技术整合,在 J2EE 的 框架中,有着各种各样的技术,不同的应用,系统使用不同的技术解决问题。需要从 J2EE 中选择不同的技术,而技术自身的复杂性,有导致更大的风险。企业在开发软件项目时,主要目的是解决业务问题。 即要求企业负责技术本身,又要求解决业务问题。这是大多数企业不能完成的。框架把相关的技术融合在一起,企业开发可以集中在业务领域方面。
另一个方面可以提供开发的效率。

2.3 JDBC的缺陷

①代码比较多,开发效率低
②需要关注 Connection ,Statement, ResultSet 对象创建和销毁
③对 ResultSet 查询的结果,需要自己封装为 List
④重复的代码比较多些
⑥业务代码和数据库的操作混在一起

3. MyBatis框架概述

MyBatis 框架:
    MyBatis 本是 apache 的一个开源项目 iBatis, 2010 年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis 。2013 年 11 月迁移到 Github。
    iBATIS 一词来源于“internet”和“abatis”的组合,是一个基于 Java 的持久层框架。iBATIS 提供的持久层框架包括 SQL Maps 和 Data Access Objects(DAOs)

3.1 MyBatis框架解决的主要问题

    减轻使用 JDBC 的复杂性,不用编写重复的创建 Connetion , Statement ; 不用编写关闭资源代码。直接使用 java 对象,表示结果数据。让开发者专注 SQL的处理。 其他分心的工作由 MyBatis 代劳。

3.2 MyBatis框架的结构

系统架构之业务逻辑层 业务层 逻辑层 应用层_sql_02

1、mybatis配置
    SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。
    mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。
2、通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂
3、由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。
4、mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。
5、Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。
6、Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。
7、Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。