MyBatis概述

MyBatis概述

传统JDBC的劣势

  1. 代码烦琐。 (使用JDBC编程时,代码量较大,尤其是当数据表字段较多时,代码显得繁琐、累赘并且使开发人员的工作量增加。)
  2. 表关系维护复杂。(数据表之间存在各种关系,包括一对一、一对多、多对多、级联等。如果采用JDBC编程的方式维护数据表之间的关系,过程较为复杂并且容易出错)
  3. 硬编码。(当使用jdbc编程时,SQL语句都是硬编码到java程序中,如果改变SQL语句,那么需要重新编译java代码,不利于后期维护)
  4. 性能问题。(在批量处理数据时,jdbc编程存在效率低下的问题,此时,程序将向数据库发送大批量的同类SQL语句请求,浪费数据库资源,影响运行效率。)

由于JDBC存在的缺陷,企业中通常使用ORM框架来完成数据库的操作。

ORM的简介

ORM的全程时Object Relational Mapping,即对象-关系映射。

ORM是一种规范,它是将简单的java对象和数据库表记录进行映射,使数据库表中的记录和POJO一一对应。

MyBatis简介

MyBatis的前身是Apache组织的一个开源项目iBatis

2010年,iBatisApache Software Foundation迁移到了 Google Code,并且改名为MyBatis

2013年11月迁移到GitHub,目前MyBatisGitHub维护。

MyBatis是一款优秀的ORM框架,它支持自定义SQL、存错过程以及高级映射。

Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,它使用XML文件或注解进行配置和映射,将接口和javaPOJO映射成数据库中的记录。

MyBatis的功能架构

在这里插入图片描述

  • API接口层:提供给外部使用的接口API,开发人员通过这些API来操纵数据库。
  • 数据处理层:负责具体的参数映射、SQL解析、SQL执行和结果映射等。它主要的功能是根据调用的请求完成一次数据库操作。
  • 基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载、缓存处理等,Mybatis将这些公用的功能抽取出来作为最基础的组件,为上层的数据处理层提供支持。

MyBatis的工作流程

  1. Mybatis读取配置文件和映射文件。其中,配置文件设置了数据源、事务等信息;映射文件设置了SQL执行相关的信息。映射文件要引入配置文件中才能被执行。
  2. Mybatis根据配置信息和映射信息生成SqlSessionFactory对象,SqlSessionFactory对象的功能是创建MyBatis的核心类对象SqlSession
  3. SqlSession中封装了操作数据库的所有方法,开发者一般通过调用SqlSession完成数据库操作,但实际上,SqlSession并没有直接操作数据库,它通过更底层的Executor执行其接口操作数据库。
  4. Executor执行器将要处理的SQL信息封装到一个MappedStatement对象中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值