什么是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集合的能力。

相关文章
|
5天前
|
SQL Java 数据库连接
MyBatis 框架入门理论与实践
MyBatis 框架入门理论与实践
23 6
|
SQL Java 数据库连接
MyBatis 优秀的持久层框架(一)
MyBatis 优秀的持久层框架
69 0
|
2月前
|
SQL 关系型数据库 Java
Mybatis-Flex框架初体验
Mybatis-Flex框架初体验
|
3月前
|
SQL Java 数据库连接
|
4月前
|
SQL Java 数据库连接
JAVAEE框架技术之7-myBatis ORM框架入门基础CRUD
JAVAEE框架技术之7-myBatis ORM框架入门基础CRUD
92 0
JAVAEE框架技术之7-myBatis ORM框架入门基础CRUD
|
4月前
|
Java 数据库连接 Maven
SSM框架整合:掌握Spring+Spring MVC+MyBatis的完美结合!
SSM框架整合:掌握Spring+Spring MVC+MyBatis的完美结合!
|
6天前
|
SQL Java 数据库连接
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
|
18天前
|
开发框架 Java 测试技术
XwFast,我开发了一个基于SpringBoot和MyBatisPlus的敏捷开发框架!
XwFast,我开发了一个基于SpringBoot和MyBatisPlus的敏捷开发框架!
32 1
|
2月前
|
SQL XML Java
这样使用MyBatis框架,被攻击了
这样使用MyBatis框架,被攻击了
14 0
|
2月前
|
Java fastjson Apache
Spring Boot+Gradle+ MyBatisPlus3.x搭建企业级的后台分离框架
Spring Boot+Gradle+ MyBatisPlus3.x搭建企业级的后台分离框架
31 1