什么是MyBatis持久层框架?

简介: MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs (Plain Old Java Objects, 普通的 Java 对象) 映射成数据库中的记录。

一、什么是MyBatis?


MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs (Plain Old Java Objects, 普通的 Java 对象) 映射成数据库中的记录。

MyBatis是一个sql映射框架,提供的数据库的操作能力,增强的JDBC,使用mybatis让开发人员集中精神写sql就可以了,不必关心Connection,Statement,ResultSet的创建,销毁,sql的执行。

MyBatis的作用:增强的jdbc,访问数据库,执行增删改查

轻量级: MyBatis 是一个小巧的框架,没有太多的依赖,使用简单。

灵活性: MyBatis 不会对应用程序或者数据库的现有设计强加任何影响。SQL 写在 XML 里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,可重用。

提供映射标签: 支持对象与数据库的 ORM 字段关系映射。

提供动态 SQL: MyBatis 最大的优点就是提供了动态 SQL 的功能,用户可以根据需要编写适合自己的 SQL 语句。

提供 XML 标签: 简化 SQL 语句的编写,尤其对于字段多、关联表多时,更是如此,极大地提高了开发效率。

与 Spring 集成: MyBatis 可以与 Spring 框架无缝集成。


二、三层设计架构


1、MyBatis中的三层设计架构

接口层(API接口层)

这一层是提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层的核心对象是SqlSession,它是上层应用和MyBatis打交道的桥梁,定义了非常多的对数据库的操作方法。当接口层接收到调用请求时,它会调用核心处理层的相应模块来完成具体的数据库操作。

核心处理层(数据处理层)

这一层主要处理与数据库操作相关的所有动作。它负责具体的SQL查找、SQL解析、SQL执行以及执行结果的映射处理等。在处理过程中,核心处理层会将接口中传入的参数解析并映射成JDBC类型,解析XML文件中的SQL语句(包括插入参数和动态SQL的生成),执行SQL语句,并处理结果集,将其映射成Java对象。插件也属于核心层,这是因为它们的工作方式和拦截的对象决定的。

基础支持层(数据访问层)

这一层主要负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理等。这些基础功能被抽取出来作为最基础的组件,为上层的数据处理层提供支撑。基础支持层还包含类型转换模块等,为简化配置文件提供了别名机制等功能。

2、三层对应的包

接口层(API接口层):controller包 (servlet)接收用户请求,显示处理结果,使用框架SpringMVC。

核心处理层(数据处理层):service 包(XXXService类)Spring创建service,Dao,工具类等,使用框架Spring。

基础支持层(数据访问层):dao包(XXXDao类)访问数据库,对数据库进行增删改查,使用框架MyBatis。

3、三层中类的交互

用户使用 --> 界面层–> 业务逻辑层—>数据访问层(持久层)–>数据库(mysql)

4、mybatis框架:

mybatis:是 MyBatis SQL Mapper Framework for Java (sql映射框架)

sql mapper:sql映射

可以把数据库表中的一行数据 映射为 一个java对象,一行数据可以看做是一个java对象,操作这个对象,就相当于操作表中的数据。

Data Access Objects(DAOs):数据访问

对数据库执行增删改查

5、mybatis提供了哪些功能:

提供了创建Connection,Statement,ResultSet的能力,不用开发人员创建这些对象了。

提供了执行sql语句的能力, 不用你执行sql。

提供了循环sql,JDBC中得到的结果集可以直接循环,不用再使用while的方式。

把sql的结果转为java对象,List集合的能力。

相关文章
|
3月前
|
Java 数据库连接 Maven
后端框架学习-----mybatis(使用mybatis框架遇到的问题)
这篇文章总结了在使用MyBatis框架时可能遇到的几个常见问题及其解决方法,包括配置文件注册、接口绑定、方法名匹配、返回类型匹配、Maven资源导出、时区设置和字符编码问题。
|
6天前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
持久层框架MyBatisPlus
21 1
持久层框架MyBatisPlus
|
20天前
|
缓存 Cloud Native 安全
探索阿里巴巴新型ORM框架:超越MybatisPlus?
【10月更文挑战第9天】在Java开发领域,Mybatis及其增强工具MybatisPlus长期占据着ORM(对象关系映射)技术的主导地位。然而,随着技术的发展,阿里巴巴集团推出了一种新型ORM框架,旨在提供更高效、更简洁的开发体验。本文将对这一新型ORM框架进行探索,分析其特性,并与MybatisPlus进行比较。
23 0
|
3月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
3月前
|
Java 数据库连接 mybatis
mybatis框架图
文章介绍了MyBatis框架的起源、发展和其作为持久层框架的功能,提供了MyBatis的框架图以帮助理解其结构和组件。
mybatis框架图
|
3月前
|
安全 Java 数据库连接
后端框架的学习----mybatis框架(3、配置解析)
这篇文章详细介绍了MyBatis框架的核心配置文件解析,包括环境配置、属性配置、类型别名设置、映射器注册以及SqlSessionFactory和SqlSession的生命周期和作用域管理。
后端框架的学习----mybatis框架(3、配置解析)
|
3月前
|
Java 数据库连接 mybatis
后端框架的学习----mybatis框架(9、多对一处理和一对多处理)
这篇文章介绍了在MyBatis框架中如何处理多对一和一对多的关联查询,通过定义`<resultMap>`和使用`<association>`与`<collection>`元素来实现对象间的关联映射。
|
3月前
|
Java 数据库连接 测试技术
后端框架的学习----mybatis框架(8、lombok)
这篇文章介绍了如何在MyBatis框架中使用lombok库来简化Java实体类的编写,包括在IDEA中安装Lombok插件、在项目中导入lombok依赖以及在实体类上使用Lombok提供的注解。
|
3月前
|
Java 数据库连接 数据库
后端框架的学习----mybatis框架(6、日志)
这篇文章介绍了如何在MyBatis框架中使用日志功能,包括配置MyBatis的日志实现、使用log4j作为日志工具,以及如何通过配置文件控制日志级别和输出格式。
|
4月前
|
Java 数据库连接 Spring
搭建 spring boot + mybatis plus 项目框架并进行调试
搭建 spring boot + mybatis plus 项目框架并进行调试
92 4