MyBatis——框架概述(概念理解)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: MyBatis——框架概述(概念理解)

文章目录:


1.框架的概述

1.1 什么是框架? 

1.2 框架解决的问题 

2.三层架构 

2.1 界面层(视图层)

2.2 业务逻辑层

2.3 持久层(数据库访问层) 

2.4三层架构请求的处理流程 

2.5 为什么要使用三层架构? 

2.6 三层架构模式中的框架 

3.回顾JDBC编程——引出MyBatis框架

3.1 模板代码 

3.2 JDBC的优缺点

4.MyBatis框架

4.1 概述 

4.2 主要解决的问题 

1.框架的概述


三层架构MVC,在web开发中,使用MVC架构模式。其中 M:数据,V:视图,C:控制器。

M数据:来自数据库MySQL、文件、网络等等。

V视图:现在主要使用 jsphtmlcssjs。来显示请求的处理结果,把M中的数据显示出来。

C控制器:接收请求,调用 service 对象,显示请求的处理结果。当前主要使用servlet作为控制器。

MVC的作用:实现解耦合。MVC各负其职。使得系统扩展更好,更容易维护。 

1.1 什么是框架? 

框架其实就是一个软件,完成了部分的功能。软件中的类和类之间的方法调用都已经规定好了,通过这些可以完成某些特定的功能。框架就可以看作是模板!!!

框架是可以升级、改造的,同时,框架也是安全的。 


1.2 框架解决的问题 

框架要解决的最重要的一个问题是技术整合,在 J2EE 框架中,有着各种各样的技术,不同的应用,系统使用不同的技术解决问题。需要从 J2EE 中选择不同的技术,而技术自身的复杂性,有导致更大的风险。企业在开发软件项目时,主要目的是解决业务问题。即要求企业负责技术本身,又要求解决业务问题。这是大多数企业不能完成的。框架把相关的技术融合在一起,企业开发可以集中在业务领域方面。另一个方面可以提供开发的效率 

2.三层架构


2.1 界面层(视图层)

接收用户的请求,调用service,显示请求的处理结果。包含了 jsphtmlcssjsservlet等对象。对应的是 controller包。 


2.2 业务逻辑层

处理业务逻辑,使用算法处理数据,把数据返回给界面层。对应的是 service 包,以及包中的很多 XXXService 类。例如:StudentServiceOrderServiceShopService等等。


2.3 持久层(数据库访问层) 

访问数据库、或读取文件、访问网络来获取数据,对应的是 dao 包,以及包中的很多 XXXDao 类,例如:StudentDaoOrderDaoShopDao等等。 


2.4三层架构请求的处理流程 

用户发起请求 ---> 界面层 ---> 业务逻辑层 ---> 数据访问层 ---> 数据库(MySQL 


2.5 为什么要使用三层架构? 

1.结构清晰、耦合度低, 各层分工明确。
2.
可维护性高,可扩展性高。
3.
有利于标准化。
4.
开发人员可以只关注整个结构中的其中某一层的功能实现。
5.
有利于各层逻辑的复用。


2.6 三层架构模式中的框架 

在三层架构模式中,每一层都对应着一个框架。

界面层:SpringMVC框架。业务逻辑层:Spring框架。数据库访问层:MyBatis框架。 

3.回顾JDBC编程——引出MyBatis框架


3.1 模板代码 

public void findStudent() {
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    try {
        //注册 mysql 驱动
        Class.forName("com.mysql.jdbc.Driver");
        //连接数据的基本信息 url ,username,password
        String url = "jdbc:mysql://localhost:3306/springdb";
        String username = "root";
        String password = "123456";
        //创建连接对象
        conn = DriverManager.getConnection(url, username, password);
        //保存查询结果
        List<Student> stuList = new ArrayList<>();
        //创建 Statement, 用来执行 sql 语句
        stmt = conn.createStatement();
        //执行查询,创建记录集,
        rs = stmt.executeQuery("select * from student");
        while (rs.next()) {
            Student stu = new Student();
            stu.setId(rs.getInt("id"));
            stu.setName(rs.getString("name"));
            stu.setAge(rs.getInt("age"));
            //从数据库取出数据转为 Student 对象,封装到 List 集合
            stuList.add(stu);
        }
    }catch(Exception e) {
        e.printStackTrace();
    }finally {
        try {
            //关闭资源
            if(rs != null) {
                rs.close();
            }
            if(stmt != null) {
                stmt.close();
            }
            if(conn != null) {
                conn.close();
            }
        }catch(Exception e) {
            e.printStackTrace();
        }
    }
}

3.2 JDBC的优缺点

优点:直观,好理解。

缺点:注册驱动,代码比较多,开发效率低。
         
需要关注 Connection ,Statement, ResultSet 对象创建和销毁。
         
ResultSet 查询的结果,需要自己封装为 List
         
sql语句和业务逻辑代码混在一起。

4.MyBatis框架


4.1 概述 

官网:https://mybatis.org/mybatis-3/zh/index.html

MyBatis本是 apache 的一个开源项目 iBatis, 2010 年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis 2013 11 月迁移到 Github 

MyBatis是一个优秀的基于 Java 的持久层框架,内部封装了 JDBC(可以看作是高级的JDBC),开发者只需要关注 sql 语句本身,而不需要处理加载驱动、创建连接、创建 statement、关闭连接服务。

它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJOPlain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

4.2 主要解决的问题 

1)注册驱动。

2)创建JDBC中使用的 ConnectionStatementResultSet这些对象,执行sql语句,得到ResultSet

3)处理ResultSet,把结果集中的数据转为Java对象,同时还能把Java对象放入到List集合中。

4)关闭资源。

5)实现sql语句和Java代码的解耦合。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
SQL XML Java
89 0
|
2月前
|
SQL Java 数据库连接
区分iBatis与MyBatis:两个Java数据库框架的比较
总结起来:虽然从技术角度看,iBATIS已经停止更新但仍然可用;然而考虑到长期项目健康度及未来可能需求变化情况下MYBATISS无疑会是一个更佳选择因其具备良好生命周期管理机制同时也因为社区力量背书确保问题修复新特征添加速度快捷有效.
193 12
|
3月前
|
SQL XML Java
MyBatis框架如何处理字符串相等的判断条件。
总的来说,MyBatis框架提供了灵活而强大的机制来处理SQL语句中的字符串相等判断条件。无论是简单的等值判断,还是复杂的条件逻辑,MyBatis都能通过其标签和属性来实现,使得动态SQL的编写既安全又高效。
271 0
|
8月前
|
Oracle 关系型数据库 Java
|
8月前
|
SQL 缓存 Java
框架源码私享笔记(02)Mybatis核心框架原理 | 一条SQL透析核心组件功能特性
本文详细解构了MyBatis的工作机制,包括解析配置、创建连接、执行SQL、结果封装和关闭连接等步骤。文章还介绍了MyBatis的五大核心功能特性:支持动态SQL、缓存机制(一级和二级缓存)、插件扩展、延迟加载和SQL注解,帮助读者深入了解其高效灵活的设计理念。
|
10月前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
544 29
|
SQL Java 数据库连接
持久层框架MyBatisPlus
持久层框架MyBatisPlus
281 1
持久层框架MyBatisPlus
|
缓存 Cloud Native 安全
探索阿里巴巴新型ORM框架:超越MybatisPlus?
【10月更文挑战第9天】在Java开发领域,Mybatis及其增强工具MybatisPlus长期占据着ORM(对象关系映射)技术的主导地位。然而,随着技术的发展,阿里巴巴集团推出了一种新型ORM框架,旨在提供更高效、更简洁的开发体验。本文将对这一新型ORM框架进行探索,分析其特性,并与MybatisPlus进行比较。
530 0
|
SQL Java 数据库连接
【Java 第十三篇章】MyBatis 框架介绍
MyBatis 原名 iBATIS,2001 年由 Clinton Begin 创建,以其简易灵活著称。2010 年更名以重塑品牌形象。MyBatis 通过 SQL 映射文件将 SQL 语句与 Java 代码分离,支持编写原生 SQL 并与方法映射。具备对象关系映射功能,简化数据库记录处理。支持动态 SQL 构建,灵活应对不同查询条件。内置缓存机制,提升查询效率。相比全功能 ORM,MyBatis 提供更高 SQL 控制度和更好的维护性,并易于与 Spring 等框架集成,广泛应用于 Java 数据访问层。
254 0
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
下一篇
oss云网关配置