系列文章目录
一、SpringBoot基础学习1——入门案例(idea联网版)
二、SpringBoot基础学习2——入门案例(官网创建版)
三、SpringBoot基础学习3——入门案例(阿里云版)
四、SpringBoot基础学习4——REST开发相关知识
五、SpringBoot基础学习5——基础配置
SpringBoot基础学习6——整合第三方数据
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、SpringBoot整合Junit
1.1 创建新模块
1.2 修改pom.xml文件
1.3 测试
(1)代码
package com.yan;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Springboot04JunitApplicationTests {
@Test
void contextLoads() {
System.out.println("test...");
}
}
(2)运行结果
1.4 测试案例
(1)目录结构
(2)代码
①BookDao.java
package com.yan.dao;
public interface BookDao {
public void save();
}
②BookDaoImpl.java
package com.yan.dao.impl;
import com.yan.dao.BookDao;
import org.springframework.stereotype.Repository;
@Repository
public class BookDaoImpl implements BookDao {
@Override
public void save() {
System.out.println("book dao is running...");
}
}
③测试类Springboot04JunitApplicationTests.java
package com.yan;
import com.yan.dao.BookDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Springboot04JunitApplicationTests {
//1.注入你要测试的对象
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
//System.out.println("test...");
//2.执行要测试的对象对应的方法
bookDao.save();
}
}
(3)运行结果
1.5 @SpringBootTest
(1)名称:@SpringBootTest
(2)类型:测试类注解
(3)位置:测试类定义上方
(4)作用:设置Junit加载的SpringBoot启动类
(5)相关属性:classes-设置SpringBoot启动类
1.6 注意事项
(1)如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的设置,也就是省略classes的设定
- 测试类如果存在于引导类所在包或子包中,无需指定引导类
- 测试类如果不存在于引导类所在包或子包中,需要通过classes属性指定引导类
@SpringBootTest(classes = Springboot04JunitApplication.class)
二、整合Mybatis
2.1
(1)核心配置:数据库连接相关信息
(2)映射配置:SQL映射(XML/注解)
2.2 创建新模块,选择Spring初始化,并配置相关基础信息
选择当前模块需要使用的技术集(MyBatis、MySQL)
项目目录结构
将application.properties改为application.yml
2.3 创建数据库及相关数据表
2.4 配置 application.yml,设置数据源参数
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/springbootdb?serverTimezone=UTC
username: root
password: root
2.5 编写实体类
package com.yan.domain;
public class Book {
private Integer id;
private String type;
private String name;
private String description;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public String toString() {
final StringBuffer sb = new StringBuffer("Book{");
sb.append("id=").append(id);
sb.append(", type='").append(type).append('\'');
sb.append(", name='").append(name).append('\'');
sb.append(", description='").append(description).append('\'');
sb.append('}');
return sb.toString();
}
}
2.6 定义数据层接口与映射配置
package com.yan.dao;
import com.yan.domain.Book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
//数据库SQL映射需要添加@Mapper被容器识别到
@Mapper
public interface BookDao {
@Select("select * from tb_book where id = #{id}")
public Book getById(Integer id);
}
2.7 测试类中注入dao接口,测试功能
package com.yan;
import com.yan.dao.BookDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Springboot05MybatisApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
System.out.println(bookDao.getById(1));
}
}
2.8 运行结果
项目目录结构
2.9 SpringBoot整合MyBatis常见问题处理
(1)MYSQL 8.X 驱动强制要求设置时区
- 修改url,添加serverTimezone设定
- 修改MYSQL数据库配置
(2)驱动类过时,提醒更换为com.mysql.cj.jdbc.Driver
三、SpringBoot整合MyBatis-Plus
3.1 MyBatis-Plus 与MyBatis区别
- 导入坐标不同
- 数据层实现简化
3.2 创建新模块
3.3 手动添加mybatis plus坐标到pom.xml文件中
(1)去maven仓库查询MyBatis plus
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
注意:由于SpringBoot中未收录MyBatis-Plus的坐标版本,需要指定对应的Version
(2)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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.yan</groupId>
<artifactId>springboot_06_MyBatisPlus</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot_06_MyBatisPlus</name>
<description>springboot_06_MyBatisPlus</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.4 项目目录结构
3.5 application.yml
# 2.配置相关信息
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/springbootdb?serverTimezone=UTC
username: root
password: root
# 设置MP相关的配置
mybatis-plus:
global-config:
db-config:
table-prefix: tb_
或在实体类上加@TableName("")表名注解
3.6 实体类Book
package com.yan.domain;
public class Book {
private Integer id;
private String type;
private String name;
private String description;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public String toString() {
final StringBuffer sb = new StringBuffer("Book{");
sb.append("id=").append(id);
sb.append(", type='").append(type).append('\'');
sb.append(", name='").append(name).append('\'');
sb.append(", description='").append(description).append('\'');
sb.append('}');
return sb.toString();
}
}
3.7 dao层接口文件BookDao
package com.yan.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yan.domain.Book;
import org.apache.ibatis.annotations.Mapper;
//数据库SQL映射需要添加@Mapper被容器识别到
@Mapper
public interface BookDao extends BaseMapper<Book> {
}
3.8 测试类
package com.yan;
import com.yan.dao.BookDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Springboot06MyBatisPlusApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
System.out.println(bookDao.selectById(1));
}
}
3.9 运行结果
四、SpringBoot整合Druid
4.1 创建新模块
4.2 手工导入Druid坐标
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
4.3 将springboot_05_Mybatis项目中Book、BookDao、appliction.yml包复制到springboot_07_druid项目中
4.4 配置druid
# 2.配置相关信息
# 配置druid,法一:
#spring:
# datasource:
# driver-class-name: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://localhost:3306/springbootdb?serverTimezone=UTC
# username: root
# password: root
# type: com.alibaba.druid.pool.DruidDataSource
# 配置druid,法二:
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/springbootdb?serverTimezone=UTC
username: root
password: root
4.3 测试类
(1)代码
package com.yan;
import com.yan.dao.BookDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Springboot07DruidApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
System.out.println(bookDao.getById(1));
}
}
(2)运行结果