Mybatis介绍与入门
1.官方文档
Mybatis中文手册:mybatis – MyBatis 3 或者 MyBatis中文网
Maven仓库:Maven Repository: org.mybatis » mybatis » 3.5.7 (mvnrepository.com)
2.概述
2.1传统Java程序操作DB
传统方式操作数据库的问题:
-
需要自己去连接数据库,这段代码由程序员编写(不一定标准)
-
程序不是OOP的方式来操作DB(我们希望在代码层面上是以对象的形式来操作,如insert(Object))
-
SQL语句写在程序中,属于硬编码,没有解耦
2.2Mybatis基本介绍
- Mybatis 是一个持久层框架
- 前身是 ibatis,在ibatis3.x 时,更名为Mybatis
- Mybatis 在 Java 和 sql 之间提供更加灵活的映射方案
- mybatis 可以对数据库表的操作(sql,方法)等等直接剥离,写到 xml 配置文件,实现和 java 代码的解耦
- mybatis 通过 SQL 操作 DB,建库建表的操作仍需要程序员完成
2.3Mybatis工作原理
相对于传统方式,Mybatis的优势:
- 数据库的连接/连接池,只需要配置即可,标准可以统一
- 程序以OOP的方式来操作数据库
- sql语句可以写在xml文件中,实现了解耦
- Mybatis可以对DB操作进行优化,提高效率,比如配置缓存
3.Mybatis快速入门
3.1需求说明
要求:开发一个Mybatis项目,通过Mybatis的方式可以对monster表进行crud操作。
3.2环境搭建
(1)创建maven父项目,方便项目的jar包管理
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.li</groupId>
<artifactId>mybatis</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<!--加入依赖-->
<dependencies>
<!--mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!--junit依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!--指定该jar的作用范围在test目录下-->
<scope>test</scope>
</dependency>
</dependencies>
</project>
(2)创建maven父项目的Module,视为子项目
此时父项目的pom.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--说明:
1.将 mybatis作为父项目管理多个子模块/子项目
2.父项目的完整的坐标 groupId[组织名]+artifactId[项目名]
3.后面该父项目会管理多个子模块/子项目,将来父项目中的引入的依赖可以直接给子项目用,
这样开发简单,提高复用性,也便于管理
4.<packaging>pom</packaging> 表示父项目以多个子模块/子项目管理工程
5. 在 modules指定管理哪些子模块
-->
<groupId>com.li</groupId>
<artifactId>mybatis</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>mybatis_quickstart</module>
</modules>
<properties>
<maven.compiler.source>8</maven.compiler.sour