JavaEE企业级应用开发教程——第一章 初识MyBatis框架(黑马程序员第二版)(SSM)

第一章 初识MyBatis框架

1.1初识框架

1.1.1 框架概述

“框架”就是骨架,在骨架上面添加自己的不同的东西就成了自己的东西。

软件框架是一种通用的、可复用的软件环境,它提供特定的功能,助力软件应用、产品和解决方案的开发工作。软件框架包含支撑程序、编译器、代码、库、工具集和 API,它把这些部件汇集在一起,以支持项目或系统的开发。

1.1.2 框架优势

  1. 提高开发效率:框架提供了一些基础设施和常用功能的实现,可以让开发者专注于业务逻辑的实现,从而提高开发效率。

  1. 提高代码质量:框架提供了一些标准化的开发模式和代码规范,可以帮助开发者编写出高质量的代码,从而降低软件出错的风险。

  1. 降低开发难度:框架把一些常见的任务和问题抽象出来,并提供了相应的解决方案,可以帮助开发者避免一些琐碎的细节和问题,从而降低开发难度。

  1. 方便团队协作:框架提供了一些共同的开发规范和代码结构,可以让团队成员之间更容易理解和协作。

  1. 便于维护和升级:框架提供了一些标准化的开发模式和代码规范,可以让维护人员更容易理解和维护代码,从而降低软件维护的成本和难度。同时,框架的升级也可以让软件更容易跟上技术的发展,保持竞争力。

1.1.3 当前主流框架

1.2 MyBatis介绍

1.2.1 传统JDBC的劣势

  1. 繁琐的编程:使用传统的JDBC需要编写大量的样板代码,例如加载数据库驱动程序、建立连接、创建和执行SQL语句等等。这些繁琐的编程工作可能会降低开发效率。

  1. 低效的性能:由于传统JDBC使用底层的JDBC API来访问数据库,它的性能可能受到限制。例如,每次执行SQL语句都需要建立和关闭数据库连接,这会带来一定的性能开销。

  1. 容易出错:使用传统JDBC需要手动处理SQL语句和结果集,容易出现SQL注入、空指针异常等错误,增加了开发的复杂度和错误率。

  1. 难以维护:在应用程序需要修改时,开发者需要手动修改大量的JDBC代码,这可能会增加维护的难度和成本。

JDBC嵌在程序代码中,修改与维护要频繁修改源码,违反开闭原则

1.2.2 MyBatis概述

MvBatis 是一个支持普通SOL查询、存储及高级映射的 持久层框架,它几乎消除了JDBC的冗余代码, 无须手动设置参数和对结果集进行检索,使用简单的 XML注解进行配置和原始映射,将接口和Java的POJO映射成数据库中的记录,使Java 开发人员可以使用面向对象的编程思想来操作数据库。

MyBatis是一个ORM(Object Relational Mapping)框架,即对象关系映射。

ORM可以将数据库中表中的记录与Java对象映射起来。

比如数据库中有一张表t_user,Java中有一个User对象,使用JDBC怎么做呢?应该是先查询表中某个记录,得到一个结果集,再通过User对象的构造方法创建对象并将查询结果传入赋值;使用MyBatis怎么做呢?只需要在xml文件或注解配置类中某个地方标上t_user与User,那么t_user表和User对象就有了一个映射关系,MyBatis查询到表中某个记录时,直接生成一个User对象,并自动将变量的值赋好。

如此一来,应用程序不需要再与数据库打交道了,而是直接操作得到的持久化对象,数据库的操作都丢给MyBatis。

1.3 MyBatis环境搭建

1.4 MyBatis入门程序

  1. 数据准备

  1. 创建pojo实体

  1. 创建映射文件

  1. 修改mybatis-config.xml配置文件

1.5 MyBatis工作原理

1.构建 SqlSessionFactory:SqlSessionFactory 是 MyBatis 的核心类,它负责读取配置文件、解析映射文件,然后创建 SqlSession 对象。

2.获取 SqlSession:SqlSession 是 MyBatis 的另一个核心类,它负责与数据库进行交互,可以执行 SQL 语句、获取映射器、提交或回滚事务等操作。可以通过 SqlSessionFactory 的 openSession() 方法获取 SqlSession。

3.加载映射文件:MyBatis 的映射文件通常是一个 XML 文件,它描述了 SQL 语句和 Java 对象之间的映射关系。在 SqlSessionFactory 初始化的过程中,会将映射文件解析为内存中的对象,方便后续的操作。

4.获取映射器:映射器是一个 Java 接口,它定义了 SQL 语句的执行方法。在 MyBatis 中,可以使用 XML 或注解的方式来定义映射器。获取映射器的方法有两种,一种是通过 SqlSession 的 getMapper() 方法获取,另一种是在映射文件中通过配置来实现。

5.执行 SQL 语句:在获取到映射器之后,就可以通过映射器中定义的方法来执行 SQL 语句了。MyBatis 会将 SQL 语句和方法参数进行绑定,然后通过 JDBC API 发送到数据库执行,最后将查询结果映射为 Java 对象返回。

6.关闭 SqlSession:SqlSession 是一个轻量级的非线程安全对象,使用完之后需要及时关闭,以释放资源。可以通过调用 SqlSession 的 close() 方法来关闭 SqlSession。

简单版:

1.应用程序调用 MyBatis API
2.MyBatis 根据配置文件创建 SqlSessionFactory
3.SqlSessionFactory 根据配置文件创建 SqlSession
4.SqlSession 接收到 SQL 命令请求
5.SqlSession 使用 Mapper 文件或注解获取 SQL 命令
6.SqlSession 发送 SQL 命令到数据库执行
7.数据库返回结果集
8.SqlSession 使用 TypeHandler 将结果集映射成 POJO
9.SqlSession 将映射结果返回给应用程序

你可能感兴趣的:(SSM,java-ee,java)