SSM之Mybatis

34 阅读3分钟

前言

回顾下之前学习过程,争取做一个系列,持续更新...

一. 框架简介

1.1三层架构

image-20230206211811793

如图,软件开发架构一般包括一下三层:

  • 持久层: 主要完成与数据库相关的操作,即对数据库的增删改查。因为数据库访问的对象一般称为Data Access Object(简称DAO),所以持久层又名DAO层。
  • 业务层: 主要根据功能需求完成业务逻辑的定义和实现。因为它主要是为上层提供服务的,所以业务层又名Service层或Business层。
  • 表现层: 主要完成与最终软件使用者的交互,需要有交互界面(UI)。因此,表现层又名web层或View层。

1.2常见的框架

  • 持久层框架: 数据持久化,常用的有mybatis,hibernate,springjbc等等。
  • 业务层框架: 用户交互,常用的有structs2,springMvc。
  • 全栈框架: 综合性框架,如spring。

二.Mybatis简介

1.1原始的jdbc操作的分析

原始jdbc开发存在的问题如下:

  • 数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能
  • sql语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。
  • 查询操作时,需要手动将结果集中的数据手动封装到实体中。

应对上述问题给出的解决方案:

  • 使用数据库连接池初始化连接资源.
  • 将sql抽取到xml配置文件中.
  • 使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射.

1.2 Mybatis简介

Mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程.

特点:

  • 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
  • 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。
  • sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
  • 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
  • 提供映射标签,支持对象与数据库的orm字段关系映射 提供对象关系映射标签,支持对象关系组建维护 提供xml标签,支持编写动态sql。

三.Mybatis快速入门

3.1Mybatis开发步骤

  1. 添加MyBatis的坐标.
  2. 创建user数据表
  3. 编写User实体类
  4. 编写映射文件UserMapper.xml
  5. 编写核心文件SqlMapConfig.xml
  6. 编写测试类

3.2 代码

  1. 创建User数据表

......