【MyBatis】(1)框架的概述以及 MyBatis 的简单介绍

MyBatis 本是apache的⼀个开源项⽬iBatis, 2010年这个项⽬由apache software foundation 迁移到了google code,并且改名为MyBatis。是⼀个基于Java的持久层框架,代码在github。目前,MyBatis 是一个许多企业都在使用的框架,也有许许多多基于ssm架构的软件。我将用几篇文章,以最为简单的方式讲解 MyBatis 这一优秀开源框架的原理以及入门运用,希望小伙伴们多多支持呀!

框架概述

1. 三层架构

界面层(表示层、视图层): 和用户打交道的, 接收用户的请求参数, 显示请求的处理结果。使用 web 页面和 用户交互,手机 app 也就是界面层的,用户在 app 中操作,而相关的业务逻辑在服务器端进行处理。 (jsp ,html ,servlet)
业务逻辑层: 接收了界面层传递的数据,检查数据,计算业务逻辑,调用数据访问层获取数据。
数据访问层: 就是访问数据库,主要实现对数据的增、删、改、查。将存储在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库。

 三层对应的包
   界面层: controller包 (servlet)
   业务逻辑层: service 包(XXXService类)
   数据访问层: dao包(XXXDao类)
 三层架构中进行的交互
   用户使用界面层--> 业务逻辑层--->数据访问层(持久层)-->DB数据库(mysql)
 三层架构对应的处理框架
   界面层---servlet---springmvc(框架)
   业务逻辑层---service类--spring(框架)
   数据访问层---dao类--mybatis(框架)

三层架构符合“高内聚,低耦合”的编程思想。

2. 框架 (Framework)

生活中的框架

在建筑领域,要想盖起一座大楼(编写一款软件),在打完地基(配置运行环境)后,都是先搭建起一个建筑物的框架(引入框架)。这样,建筑物的基本样貌和结构就已经固定好了,再由相关部门在这个建筑物框架的内部对房间进行切割、装修(编写各个模块的代码)。

1626504334586

在这个例子中,框架可以认为是大楼最基础的主体部分,它决定了整个大楼的结构,但没有明确定义其中的每一个细节。

软件开发中的框架

框架是可被应用开发者定制的应用骨架和模板,同时,框架也是一种规则。

模板?规则?

 1. 框架中定义好了一些功能和条款,这些功能是可用的。
 2. 可以在框架中加入项目中自己的功能, 这些功能可以利用框架中写好的功能。
 3. 它保证了开发者遵循相同的方式开发程序,这有利于团队的协作和代码的管理。

框架是一个半成品软件,其中定义好了一些基础功能,在这个基础上应用开发者需要加入自己的功能,加入后就是完整的软件了。
框架中的基础功能是可重复使用的,可升级的。

框架特点:

 1. 框架并非全能, 而是适合于某一个方面。比如:mybatis适合做数据库操作,但它不适合做界面层或业务逻辑层的事情。
 2. 框架是一个半成品软件,提倡“不要重复造轮子”,对基础功能进行了封装,提高开发效率
 3. 框架保证了开发者遵循相同的方式开发程序,这有利于团队的协作和代码的管理。
 4. 框架提供灵活的配置方式(如:xml文本文件),拥有更好的可维护性。

常用框架(SSM)

常见的 J2EE 开发框架:

MyBatis 框架: 
MyBatis 是一个优秀的基于 java 的持久层框架,内部封装了 jdbc,开发者只需要关注 sql 语句本身,而不需要处理加载驱动、创建连接、创建 statement、关闭连接,资源等繁杂的过程。 
MyBatis 通过 xml 或注解两种方式将要执行的各种 sql 语句配置起来,并通过 java 对象和 sql 的 动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java  对象并返回。 
Spring 框架:
Spring 框架为了解决软件开发的复杂性而创建的。Spring 使用的是基本的 JavaBean 来完成以前
非常复杂的企业级开发。Spring 解决了业务对象,功能模块之间的耦合,不仅在 javase,web 中使用,
大部分 Java 应用都可以从 Spring 中受益。
Spring 是一个轻量级控制反转(IoC)和面向切面(AOP)的容器。
SpringMVC 框架
Spring MVC 属于 SpringFrameWork 3.0 版本加入的一个模块,为 Spring 框架提供了构建 Web 
应用程序的能力。现在可以 Spring 框架提供的 SpringMVC 模块实现 web 应用开发,在 web 项目中
可以无缝使用 Spring 和 Spring MVC 框架。

3. MyBatis框架

MyBatis 本是apache的⼀个开源项⽬iBatis, 2010年这个项⽬由apache software foundation 迁移到了google code,并且改名为MyBatis。是⼀个基于Java的持久层框架,代码在github。

什么是MyBatis?

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

MyBatis使用XML将SQL与程序解耦,便于维护

  MyBatis 是 MyBatis SQL Mapper Framework for Java (sql映射框架)
   1)sql mapper :sql映射
         可以把数据库表中的一行数据  映射为 一个java对象。
	 	操作这个对象,就相当于操作表中的数据

   2) Data Access Objects(DAOs) : 数据访问 , 对数据库执行增删改查。

mybatis框架的功能:

1. 提供了创建Connection ,Statement, ResultSet的能力 ,不用开发人员创建这些对象了
2. 提供了执行sql语句的能力, 不用你执行sql
3. 从 xml 中获取 sql,并执行 sql 语句,把 ResultSet 结果转换 java 对象、List集合
     List<Student> list = new ArrayLsit<>();
     ResultSet rs = state.executeQuery(“select * from student”);
     while(rs.next()){
         Student student = new Student();
         student.setName(rs.getString(“name”));
         student.setAge(rs.getInt(“age”));
         //从数据库取出数据转为 Student 对象,封装到 List 集合
         list.add(student);
     }
4. 提供了关闭资源的能力,不用开发者手动关闭Connection, Statement, ResultSet

开发人员做的是: 提供sql语句
流程: 开发人员提供sql语句—mybatis处理sql—开发人员得到List集合或java对象(表中的数据)

总结:

MyBatis是一个sql映射框架,提供数据库的操作能力,是增强的JDBC。
减轻了使用 JDBC 的复杂性,不用编写重复的创建 Connetion , Statement ; 不用编写关闭资源代码。 
直接使用 java 对象,表示结果数据。让开发者专注 SQL 的处理。 其他分心的工作由 MyBatis 代劳。  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kaho Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值