文章概述
【说明】
- 包含该框架的一些基础内容;
- 其他文章会涉及到进阶内容;
- 各主题都有简易版和最终版;
- “Spring Boot"整合"Mybatis”;
- “Mybatis"框架版本是"2.2.2”;
- 简易版的文章不会持续维护;
框架基础
【简介】
- "Mybatis"框架解决了数据库编程相关的问题,主要是简化了数据库编程;
【说明】
当使用"Mybatis"框架实现数据库编程时,只需要:
定义操作数据库内数据的抽象方法;
配置以上抽象方法映射的SQL语句;
"Mybatis"框架在实现过程中,会自动生成各接口的代理对象,所以,不再需要关注接口的实现问题;
【依赖】
<!-- Mybatis框架 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency> <!-- MySQL依赖项,仅运行时需要 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
【配置】
配置文件:
- 提示:以下配置中,属性名称是固定的,值是示例值,启动"Spring Boot"只是加载以上配置,并不会执行连接,所以,配置值错误并不影响启动项目;
# 数据库的配置信息 # 数据库的URL spring.datasource.url=jdbc:mysql://localhost:3306/<数据库名>?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai # 数据库的账号 spring.datasource.username=<账号> # 数据库的密码 spring.datasource.password=<密码>
配置大类:
【类名】:MybatisConfiguration
import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Configuration; /** * Mybatis配置类 * * @author SUNxRUN * @version 0.0.1 */ @Slf4j @Configuration @MapperScan("xx.xx") // 值为Mapper接口所在包路径 public class MybatisConfiguration { public MybatisConfiguration() { log.debug("【配置类】MybatisConfiguration-----已运行"); } }
【测试】
- 说明:为了检验配置值是否正确,可以创建测试类,在测试类中编写测试方法,以尝试连接数据库,即可检验;
【类名】:DatabaseConnectionTests
import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import javax.sql.DataSource; // 测试类必须: // 1. 在组件扫描的包下(默认的包及其子孙包) // 2. 只有添加了@SpringBootTest注解才会加载整个项目的运行环境(包括Spring、读取配置等) @SpringBootTest public class DatabaseConnectionTests { // Spring Boot自动读取application.properties的配置,并创建了数据源对象 @Autowired DataSource dataSource; // 连接数据库,可用于检查application.properties中的连接参数值是否正确 @Test public void testConnection() throws Exception { // 获取与MySQL的连接,此方法的调用会实质的连接数据库 dataSource.getConnection(); System.out.println("当你看到这句话时,表示`application.properties`中的数据库连接参数是正确的"); } }