MyBatis框架学习001-MyBatis框架简介

一 框架简介

在学习MyBatis之前,我们需要先熟悉下在软件开发中用到的 框架 的概念。

1.1 什么是框架

软件框架(software framework),通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
—百度百科对于软件框架的解释

说人话:框架可以理解为半成品软件,框架做好以后,接下来在它基础上进行开发,更便捷的完成各自特有的系统。

1.2 为什么要使用框架

框架为我们封装好了一些冗余,且重用率低的代码。并且使用反射与动态代理机制,将代码实现了通用性,让开发人员把精力专注在核心的业务代码实现上。

比如在使用servlet进行开发时,需要在servlet获取表单的参数,每次都要获取很麻烦,而框架底层就使用反射机制和拦截器机制帮助我们获取表单的值,使用jdbc每次做专一些简单的crud的时候都必须写sql,但使用框架就不需要这么麻烦了,直接调用方法就可以。

1.3 三层架构

软件开发常用的架构是三层架构,之所以流行是因为有着清晰的任务划分。一般包括以下三层:

  • 持久层:主要完成与数据库相关的操作,即对数据库的增删改查。 因为数据库访问的对象一般称为Data Access Object(简称DAO),所以有人把持久层叫做DAO
    层。
  • 业务层:主要根据功能需求完成业务逻辑的定义和实现。 因为它主要是为上层提供服务的,所以有人把业务层叫做Service层或Business层。
  • 表现层:主要完成与最终软件使用用户的交互,需要有交互界面(UI)。 因此,表现层也被称之为web层或View层。

三层架构之间调用关系为:表现层调用业务层,业务层调用持久层。

各层之间必然要进行数据交互,我们一般使用Java实体对象来传递数据。

三层架构示意图

三层架构示意图

1.4 常见的框架

Java世界中的框架非常的多,每一个框架都是为了解决某一部分或某些问题而存在的。下面列出在目前企业中流行的几种框架(一定要注意他们是用来解决哪一层问题的):

  • 持久层框架:专注于解决数据持久化的框架。常用的有MyBatis、hibernate等等。
  • 表现层框架:专注于解决与用户交互的框架。常见的有struts2、spring mvc等等。
  • 全站框架:能在各层都给出解决方案的框架。比较著名的就是spring。

二 MyBatis简介

2.1 原始JDBC操作(查询数据)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RM4kbOsY-1620284942181)(2021-05-06-14-59-20.png)]在这里插入图片描述

2.2 原始JDBC操作的分析

原始jdbc开发存在的问题如下:

① 数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能。

② sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变java代码。

③ 查询操作时,需要手动将结果集中的数据手动封装到实体中。

应对上述问题给出的解决方案
① 使用数据库连接池初始化连接资源
② 将sql语句抽取到xml配置文件中
③ 使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射。

2.3 Mybatis简介

MyBatis框架就是用来解决以上问题的。
MyBatis是一个优秀的基于ORM的半自动轻量级持久层框架,它对jdbc的操作数据库的过程进行封装,
使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建
statement、手动设置参数、结果集检索等jdbc繁杂的过程代码.

2.4 MyBatis历史

MyBatis 本是apache的一个开源项目iBatis, 2010年6月这个项目由apache software foundation 迁移到了google code,随着开发团队转投到Google Code旗下,iBatis正式改名为MyBatis ,代码于2013年11月迁移到Github。

Github地址:https://github.com/mybatis/mybatis-3/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值