什么是Mybatis

HeJin大约 3 分钟数据库技术Mybatis

1、环境准备

JDK环境

>java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

MySQL环境

Server version: 8.0.18 MySQL Community Server - GPL

maven环境

>mvn -v
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T23:06:16+08:00)
Maven home: D:\Maven\apache-maven-3.6.2\bin\..
Java version: 1.8.0_121, vendor: Oracle Corporation, runtime: D:\Java\jdk1.8.0_121\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

开发工具

IDEA 2019.3.4

2、必备基础

  • JDBC
  • MySQL
  • Java基础
  • Maven
  • Junit

3、什么是mybatis

官网

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。

GitHub

https://github.com/mybatis/mybatis-3open in new window

中文文档

https://mybatis.org/mybatis-3/zh/index.htmlopen in new window

maven包

https://mvnrepository.com/artifact/org.mybatis/mybatisopen in new window

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.4</version>
</dependency>

4、持久化

数据持久化

持久化就是将程序的数据在持久状态和瞬时状态转化的过程。

内存:断电即失

数据库,IO文件持久化

5、持久层

Dao层、Service层、Controller层

完成持久化工作的代码块就叫持久层。层界限十分明显。

6、为什么需要Mybatis

帮助程序将数据存入到数据库中。

方便。

传统的JDBC代码太复杂了。简化,框架。😄

不用Mybatis也可以。更容易上手。技术没有高低之分。

优点

  • 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
  • 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
  • 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
  • 提供映射标签,支持对象与数据库的orm字段关系映射
  • 提供对象关系映射标签,支持对象关系组建维护
  • 提供xml标签,支持编写动态sql。

提示

最重要的一点:使用的人多。