1.框架
1-1 为何要学习框架
框架是一个半成品,已经对基础的代码进行了封装并提供相应的 API,开发者使用框架是直接调用封装好的API可以省去很多代码编写,从而提高工作效率和开发速度
框架的优势:
- 不用在考虑公共问题,框架都已经帮我们解决好了
- 可以专心于业务的实现,保证核心业务逻辑的开发质量
- 结构统一 ,便于学习和维护
- 框架集中了前任人的经验,可以帮助新手写出稳定,性能优良而且结构优美的高质量程序
- 缩短我们的开发时间和周期
1-2 框架的概念
框架(Frameword) 是一个提供可重用的公共结构的半成品。它为我们构建新的应用程序提供了极大的便利。一方面可以拿来就用的工具,更重要的是,提供了可重用的设计
框架的另一层面的含义是:框架使混乱的东西变得结构化。莎士比亚说: “一千个人有一千个哈姆雷特”。同样,如果没有框架的话,一千个人将写出一千个 Servlet + javaBean + JSP 的代码。而框架保证了程序的结构风格的统一。从企业的角度来说,降低了培训成本和软件的维护成本
框架就像他的名字一样,是一个框,那框就是要有一些约束,所以在学习框架的很多时候都需要按照人家规定好的步骤按部就班去操作;是一个架,是框架中包含了很多设计模式和基础功能,将应用程序支撑起来
1-3 框架的使用场景
框架也有它的弊端,不是任何时候都会使用框架的
框架的维护需要很大人力,财力。如果不是特别大规模,特别复杂的项目,建议还是不要使用框架
2.MyBatis
2-1 MyBatis 的基本信息
MyBatis 本是 apache 的一个开源项目 ibatis ,2010年这个项目由 apache softwafe foundation 迁移到了 google code ,并且改名为 MyBatis。2013 年 11 月迁移到了 GitHub
MyBatis 是一个基于 Java 的数据持久层 ORM 框架,把实体类和SQL 语句之间建立了映射关系,是一种半自动化的 ORM 实现
补充: (1)ORM对象关系映射,是一种数据持久化技术
O:Object 对象 === java里的实体类
R:Relation 关系 === 关系型数据库
M:Mapping 映射 === 提供一种机制,实现映射‘
(2)半自动化: 需要写一些sql语句,才能完成指定的功能
全自动化: 不需要使用sql语句,直接操作即可,就可以对应的操作数据表里的数据
有全自动为什么还需要半自动化?多表查询的时候,分页查询的时候,全自动在进行修改的时候反而很复杂
MyBatis 支持定制化 SQL ,存储过程以及 高级映射
MyBaits 可以使用简单的 xml 或 注解来配置和映射原生信息,将接口的 Java 和 POJOS(Palin Ordinary Java Object,普通的 java 对象)映射成数据库中的记录
2-2 MyBatis 和传统的 JDBC比较
MyBatis 避免了几乎所有 JDBC 代码和手动设置参数以及获取结果集
如果手写过JDBC 操作,就会发现操作非常繁琐:
- 定义数据库连接参数
- 打开数据库连接
- 声明 sql 语句
- 预编译并执行 SQL 语句
- 遍历查询结果,对每一记录进行处理
- 处理事务
- 关闭数据库连接
MyBatis 是一个优秀的基于 java 的持久层框架,它内部封装了 JDBC,使开发者只需要关注 SQL 语句本身,而不需要花费精力去处理加载驱动,创建连接,创建Statement等繁杂的过程
MyBatis 通过xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中 sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 MyBatis 框架执行 sql 并将结果映射为 java 对象并返回
2-3 MyBatis 的优点
- 简单易学:MyBatis 本身小巧简单,没有任何第三方的依赖,易于学习,易于使用
- 基于SQL语法,灵活:MyBatis 不会对应用程序或者数据库的现有设计强加任何影响.SQL写在xml里,便于统一管理和优化,通过SQL语句可以满足操作数据库的所有需求
- 解除SQL和程序代码的耦合: 通过提供 DAO 层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试,sql和代码的分离,提高了可维护性
- 提供映射标签,支持对象和数据库的 ORM 字段关系映射
- 提供对象关系映射标签,支持对象关系组建维护
- 提供 xml 标签,支持编写动态 sql : 使用JDBC,就会明白把 SQL 语句条件连接在一起多么的痛苦。要确保不能忘记空格或者不要在 columsns 列后面省略一个 逗号等。动态语句能够完全解决这些痛苦
为了和数据库进行交互,通常的做法是将 SQL 语句 写在 java 代码写在java 代码中,SQL语句和 java 代码耦合在一起不利于后期维护和修改,而 MyBatis 能够帮助我们将SQL 语句和 Java 分离,方便了后期因需求变动而对 SQL 语句进行修改
采用ORM思想解决了实体对象和数据库映射的问题,对 jdbc 进行了封装,屏蔽了 jdbc api 底层访问细节。是我们不用和 jdbc api 打交道,就可以完成对数据库的持久操作。同时 MyBatis 封装了绝大不发 jdbc 中参数设置和返回值接收工作,我们不需要编写大量的臃肿代码
2-4 MyBatis 框架工程架构
MyBatis 框架功能框架分为 三层
- API 接口层: 首先接口是我们打交道最多的,核心对象是 SqlSession ,它是上层应用和MyBaits 打交道的 桥梁,SqlSession 上定义非常多对数据库的操作方法,接口层在接收到调用请求的时候,会调用核心处理层的相应模块来完成具体的数据库操作
- 数据处理层/核心处理层:跟数据库操作相关的动作都是在这一层完成的。核心处理层主要做了这几件事
- 把接口中传入的参数解析并且映射成 jdbc 类型
- 解析 xml 文件中的 SQL 语句,包括插入参数,和动态 SQL 的生成
- 执行 SQL 语句
- 处理结果集,并映射成 java 对象
- 继承支撑层:用于连接 jdbc 操作的配置
本文介绍了框架的重要性,如提高开发效率和代码结构化,并阐述了MyBatis作为Java数据持久层框架的特性,如简化JDBC操作、支持动态SQL。对比传统JDBC,MyBatis避免了繁琐的手动处理,提供了对象关系映射和灵活的SQL配置。此外,还分析了MyBatis的框架架构,包括API接口层、数据处理层和继承支撑层。

1013

被折叠的 条评论
为什么被折叠?



