1. 框架概述
程序开发中框架(framework)往往是对常见功能的封装,可以把框架理解为软件的设计规范或者标准化的组件,好比机械中的螺丝螺母等标准的机械部件
假如你要造一辆兰博基尼,在没有框架的情况下,你需要自己去烧锅炉炼钢,然后组成轮子、门、座椅等部件,然后组装起来。但如果你用了框架,就相当于你有现成的轮子、门、座椅等部件,你只需要组装一下就可以了。
一个框架是一组可复用的设计构件
框架(Framework)是整个或者部分系统的可重用设计,是JavaEE底层技术的封装
框架是可以被开发者定制的应用骨架
框架是一个半成品,软件是成品。我们在它的基础上开发出成品
框架解决的问题
解决了技术通用的问题
在JavaEE体系中,有着各种各样的技术。不同的软件企业,根据自身的业务需求选择不同的技术,容易造成应用依赖技术,增加了项目开发实现的复杂性和技术风险性。企业项目中应该将应用的设计与实现技术解耦
提升了开发效率
企业项目中使用框架,只需要专注实现业务需求。使用框架的方便性,提升了开发效率
提升了系统稳定性
一个成熟的框架,经过了在众多企业项目中的验证使用,稳定性有保障
2. 项目的三层架构
没有使用三层架构的场景
1566568755667
生活中的分成架构
小公司:所有的办公区域在一起
1562376118725大公司:分层明确
1562376144920三层架构的作用
一个中大型软件开发需要有明确分层
层 | 作用 |
---|---|
表示层 View | 面向客户,处理客户的输入和输出。前端代码 |
业务层 Service | 处理业务逻辑的代码,如:登陆、注册、支付 |
数据访问层 DAO Data Access Object | 面向数据库,提供增删改查的功能,也叫持久层 |
分层的方式
分层包 | 功能描述 |
---|---|
com.view | 表示层 |
com.service | 业务层 |
com.dao | 数据访问层 |
三层架构的优缺点
优点
- 降低了代码的耦合度,降低类与类之间关系。有利于团队的开发
项目的可扩展性更好 3. 可维护性更好 4. 可重用性更好,同一个方法可以由多个类去调用
缺点
- 执行效率更低
- 开发工作量更大
- 会导致级联的修改,如果修改一个功能,导致三层都要进行修改
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、存储过程以及高级映射
优点:
- 简单易学:Mybatis本身就很小且简单,没有任何第三方依赖,最简单安装只要两个jar文件+配置几个SQL映射文件即可 (一般额外加一个jar包: log4j , 主要打印日志的)
- 使用灵活:Mybatis不会对应用程序或者数据库的现有设计强加任何影响。SQL语句写在XML里,便于统一管理和优化。(和Hibernate相比)
- 解除SQL与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易进行单元测试。SQL语句和代码的分离,提高了可维护性
缺点:
- 编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此
- SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库
- 框架还是比较简陋,功能尚有缺失,二级缓存机制不佳
MyBatis的ORM方式
Object Relational Mapping 对象关系映射
“1566614801843mybatis会将结果集中的每一条记录 映射 成 java的一个实体类对象 (反射)
”
MyBatis的两种映射方式:
- 通过XML映射
- 通过注解