MyBatis(一)
搭建环境:
- JDK 1.8
- MySQL 8.0
- maven
- IDEA
知识需求:
-
JDBC
MyBatis就是为了简化JDBC操作
-
MySQL
-
Java基础
-
Maven
-
Junit
学习建议:**框架学习的最好的方式就是看官网文档!**需要编写配置文件。
MyBatis中文官网:https://mybatis.org/mybatis-3/zh/
1 简介
1.1 什么是MyBatis
-
MyBatis 是一款优秀的持久层框架
持久层:完成持久化工作的代码块
持久化:将数据持久化
持久化:将程序中的数据从瞬时状态向持久状态转化的过程
- 瞬时状态:存放在内存中的数据易断电即失
- 持久状态:存放在数据库(JDBC)、IO文件中不易丢失
即将程序中的数据从内存中持久化进数据库(IO浪费资源)
-
它支持定制化 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。
1.2 如何获得MyBatis
-
Maven
MyBatis 3.5.2
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency>
-
GitHub:https://github.com/mybatis/mybatis-3/releases
1.3 MyBatis的优点
- 灵活: sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
- 解除sql与程序代码的耦合,sql和代码的分离,提高了可维护性。
- 提供映射标签
- 提供对象关系映射标签
- 提供xml标签,支持编写动态sql
2第一个MyBatis程序
思路:搭建环境——>导入MyBatis——>编写代码——>测试
2.1 搭建数据库环境
2.2 新建普通的Maven项目
- 在porm.xml文件中导入依赖
- mybatis依赖
- mysql驱动依赖
- Junit测试依赖
<!--导入依赖-->
<dependencies>
<!--导入mybatis依赖-->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!--导入Junit依赖-->
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--导入MySQL驱动依赖-->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
</dependencies>
2.3 编写MyBatis的核心配置文件
在src/main/resources目录下新建一个mybatis-config.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration:mybatis的核心配置文件-->
<!--官网版本-->
<configuration>
<environments default="development">
<!--配置环境,通过id可任意选择-->
<environment id="development">
<transactionManager type="JDBC"/>
<!--事务管理,默认JDBC-->
<dataSource type="POOLED">
<!--配置数据库连接参数-->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
我的mysql连接配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!--url中的参数解释
& ——>&的转义形式,&在此处无法使用
serverTimezone=UTC ——>mysql8.0+版本必配置否则时区混乱
userSSL=true ——>安全连接设置为true
useUnicode=true ——>使用Unicode中文编码
characterEncoding=UTF-8 ——>编码格式为UTF-8
-->
<property name="url" value=