Mybatis简介

1.框架简介

1.1三层架构

软件开发常用的架构是三层架构,之所以流行是因为有着清晰的任务划分。一般包括以下三层:
 
  • 持久层:主要完成与数据库相关的操作,即对数据库的增删改查。 因为数据库访问的对象一般称为Data Access Object(简称DAO),所以有人把持久层叫做DAO 层。
  • 业务层:主要根据功能需求完成业务逻辑的定义和实现。 因为它主要是为上层提供服务的,所以有人把业务层叫做Service层或Business层。
  • 表现层:主要完成与最终软件使用用户的交互,需要有交互界面(UI)。
因此,有人把表现层称之为 web 层或 View 层。
 
三层架构之间调用关系为 : 表现层调用业务层,业务层调用持久层。
 
各层之间必然要进行数据交互,我们一般使用java 实体对象来传递数据。

 

1.2 框架

1.2.1 什么是框架?

框架就是一套规范,既然是规范,你使用这个框架就要遵守这个框架所规定的约束。
 
框架可以理解为半成品软件,框架做好以后,接下来在它基础上进行开发。
 

1.2.2 为什么使用框架?

    框架为我们封装好了一些冗余,且重用率低的代码。并且使用反射与动态代理机制,将代码实现了通用性,让开发人员把精力专注在核心的业务代码实现上。
 
    比如在使用 servlet 进行开发时,需要在 servlet 获取表单的参数,每次都要获取很麻烦,而框架底层就使用反射机制和拦截器机制帮助我们获取表单的值,使用jdbc 每次做专一些简单的crud的时候都必须写sql ,但使用框架就不需要这么麻烦了,直接调用方法就可以。当然,既然是使用框架,那么还是要遵循其一些规范进行配置。

 

1.2.3 常见的框架

Java 世界中的框架非常的多,每一个框架都是为了解决某一部分或某些问题而存在的。下面列出在目前企业中流行的几种框架(一定要注意他们是用来解决哪一层问题的):
 
  • 持久层框架:专注于解决数据持久化的框架。常用的有mybatishibernatespring jdbc等等。
  • 表现层框架:专注于解决与用户交互的框架。常见的有struts2spring mvc等等。
  • 全栈框架: 能在各层都给出解决方案的框架。比较著名的就是spring。
我们以企业中最常用的组合为: Spring + Spring MVC + mybatis SSM )以及   SSH: struts2 spring hibernate
 

2. Mybatis简介

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

 

2.2 原始jdbc操作的分析

原始 jdbc 开发存在的问题如下:
 
①数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能
 
sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大, sql 变动需要改变 java代码。
 
③查询操作时,需要手动将结果集中的数据手动封装到实体中。
 
应对上述问题给出的解决方案:
 
①使用数据库连接池初始化连接资源
 
②将 sql 语句抽取到 xml 配置文件中
 
③使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射

 

2.3 Mybatis简介

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

2.4 ORM思想

ORM Object Relational Mapping )对象关系映射
 
O (对象模型):实体对象,即我们在程序中根据数据库表结构建立的一个个实体javaBean
 
R(关系型数据库的数据结构):关系数据库领域的 Relational (建立的数据库表)
 
M(映射):从 R (数据库)到 O (对象模型)的映射,可通过 XML 文件映射
 
实现:
 
1 )让实体类和数据库表进行一一对应关系
 

          先让实体类和数据库表对应

          再让实体类属性和表里面字段对应

2)不需要直接操作数据库表,直接操作表对应的实体类对象

 

ORM作为是一种思想
 
帮助我们跟踪实体的变化 , 并将实体的变化翻译成 sql 脚本 , 执行到数据库中去 , 也就是将实体的变化映射到了表的变化。
 
mybatis 采用 ORM 思想解决了实体和数据库映射的问题,对 jdbc 进行了封装,屏蔽了 jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作
 
 
节选自拉钩教育JAVA系列培训课程
 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值