1、MyBatis简介


【尚硅谷】SSM框架全套教程-讲师:杨博超

失败,是正因你在距成功一步之遥的时候停住了脚步。

1、MyBatis简介

1.1、Mybatis历史

MyBatis最初是Apache的一个开源项目iBatis,2010年6月这个项目由Apache Software Foundation迁移到了Google Code。

随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。

代码于2013年11月迁移到Github。

iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。

iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。

1.2、MyBatis特性

  1. MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。
  2. MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
  3. MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old JavaObjects,普通的Java对象)映射成数据库中的记录。
  4. MyBatis 是一个 半自动的ORM(Object Relation Mapping)框架。

1.3、MyBatis下载

方式一:maven坐标

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.10</version>
</dependency>

方式二:官网

MyBatis3
MyBatis下载地址

在这里插入图片描述

1.4、和其它持久化层技术对比

1 JDBC

SQL 夹杂在Java代码中耦合度高,导致硬编码内伤。

维护不易且实际开发需求中 SQL 有变化,频繁修改的情况多见。

代码冗长,开发效率低。

2 Hibernate 和 JPA

操作简便,开发效率高。

程序中的长难复杂 SQL 需要绕过框架。

内部自动生产的 SQL,不容易做特殊优化。

基于全映射的全自动框架,大量字段的 POJO 进行部分映射时比较困难。

反射操作太多,导致数据库性能下降。

3 MyBatis

轻量级,性能出色。

SQL 和 Java 编码分开,功能边界清晰。

Java代码专注业务、SQL语句专注数据。

开发效率稍逊于HIbernate,但是完全能够接受。

1.5、生命周期和作用域

在这里插入图片描述

生命周期和作用域是至关重要的,因为错误的使用会导致非常严重的并发问题。

1.6、SqlSessionFactoryBuilder

一旦创建了 SqlSessionFactory,就不再需要它了。

局部变量

1.7、SqlSessionFactory

说白就是可以想象为:数据库连接池。

SqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例

SqlSessionFactory 的最佳作用域是应用作用域。

最简单的就是使用单例模式或者静态单例模式。

1.8、SqlSession

连接到连接池的一个请求!

SqlSession 的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。

用完后需要赶紧关闭,否则资源被占用!

在这里插入图片描述

这里的每一个Mapper,就代表一个具体的业务!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值