前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1. MyBatis框架介绍

1. MyBatis框架介绍

作者头像
Devops海洋的渔夫
发布2022-01-17 14:32:51
3510
发布2022-01-17 14:32:51
举报
文章被收录于专栏:Devops专栏Devops专栏

1. MyBatis框架介绍

1. 框架概述

程序开发中框架(framework)往往是对常见功能的封装,可以把框架理解为软件的设计规范或者标准化的组件,好比机械中的螺丝螺母等标准的机械部件

假如你要造一辆兰博基尼,在没有框架的情况下,你需要自己去烧锅炉炼钢,然后组成轮子、门、座椅等部件,然后组装起来。但如果你用了框架,就相当于你有现成的轮子、门、座椅等部件,你只需要组装一下就可以了。

一个框架是一组可复用的设计构件

框架(Framework)是整个或者部分系统的可重用设计,是JavaEE底层技术的封装

框架是可以被开发者定制的应用骨架

框架是一个半成品,软件是成品。我们在它的基础上开发出成品

框架解决的问题

  1. 解决了技术通用的问题 在JavaEE体系中,有着各种各样的技术。不同的软件企业,根据自身的业务需求选择不同的技术,容易造成应用依赖技术,增加了项目开发实现的复杂性和技术风险性。企业项目中应该将应用的设计与实现技术解耦
  2. 提升了开发效率 企业项目中使用框架,只需要专注实现业务需求。使用框架的方便性,提升了开发效率
  3. 提升了系统稳定性 一个成熟的框架,经过了在众多企业项目中的验证使用,稳定性有保障

2. 项目的三层架构

没有使用三层架构的场景

生活中的分成架构

小公司:所有的办公区域在一起

大公司:分层明确

三层架构的作用

一个中大型软件开发需要有明确分层

作用

表示层 View

面向客户,处理客户的输入和输出。前端代码

业务层 Service

处理业务逻辑的代码,如:登陆、注册、支付

数据访问层 DAO Data Access Object

面向数据库,提供增删改查的功能,也叫持久层

分层的方式

分层包

功能描述

com.view

表示层

com.service

业务层

com.dao

数据访问层

三层架构的优缺点

  1. 优点
    1. 降低了代码的耦合度,降低类与类之间关系。有利于团队的开发
  2. 项目的可扩展性更好 3. 可维护性更好 4. 可重用性更好,同一个方法可以由多个类去调用
  3. 缺点
    1. 执行效率更低
    2. 开发工作量更大
    3. 会导致级联的修改,如果修改一个功能,导致三层都要进行修改

3. MyBatis框架介绍

MyBatis历史

MyBatis官网:http://www.mybatis.org/mybatis-3/,

image-20210308073121564

框架包下载地址:https://github.com/mybatis/mybatis-3/releases

MyBatis是Apache软件基金会下的一个开源项目,前身是iBatis框架。

2010年这个项目由apache 软件基金会迁移到google code下,改名为MyBatis

2013年11月又迁移到了GitHub(世界上最大的开源网站)

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射

优点:

  1. 简单易学:Mybatis本身就很小且简单,没有任何第三方依赖,最简单安装只要两个jar文件+配置几个SQL映射文件即可 (一般额外加一个jar包: log4j , 主要打印日志的)
  2. 使用灵活:Mybatis不会对应用程序或者数据库的现有设计强加任何影响。SQL语句写在XML里,便于统一管理和优化。(和Hibernate相比)
  3. 解除SQL与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易进行单元测试。SQL语句和代码的分离,提高了可维护性

缺点:

  1. 编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此
  2. SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库
  3. 框架还是比较简陋,功能尚有缺失,二级缓存机制不佳

MyBatis的ORM方式

Object Relational Mapping 对象关系映射

“mybatis会将结果集中的每一条记录 映射 成 java的一个实体类对象 (反射) ”

MyBatis的两种映射方式:

  1. 通过XML映射
  2. 通过注解
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海洋的渔夫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. MyBatis框架介绍
    • 1. 框架概述
      • 2. 项目的三层架构
        • 3. MyBatis框架介绍
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档