SpringBoot【基础篇】---- 基于SpringBoot实现SSMP整合
迪丽瓦拉
2024-06-03 08:54:39
0

SpringBoot【基础篇】---- 基于SpringBoot实现SSMP整合

  • 1. 整合JUnit
    • 1. 测试类存在于引导类所在包或子包中无需指定引导类
    • 2. 测试类不存在于引导类所在的包或者子包中需要通过 classes 属性指定引导类
    • 3. 总结
  • 2. 整合MyBatis
    • 1. 导入对应的 starter
    • 2. 配置数据源相关信息
    • 3. 实体类
    • 4. 映射接口(Dao)
    • 5. 测试类
  • 3. 整合MyBatis-Plus、
    • 1. 导入对应的 starter
    • 2. 配置数据源相关信息
    • 3. 映射接口(Dao)
  • 4. 整合Druid
    • 1. 导入对应的 starter
    • 2. 修改配置

1. 整合JUnit

1. 测试类存在于引导类所在包或子包中无需指定引导类

@SpringBootTest
class Springboot04JunitApplicationTests {//1、注入要测试的对象@Autowiredprivate BookDao bookDao;//2、执行要测试对象的方法@Testvoid contextLoads() {bookDao.save();}}
  • 名称@SpringBootTest
  • 类型:测试类注解
  • 位置:测试类定义上方
  • 作用:设置 JUnit 加载的 SpringBoot 启动类
  • 范例
@SpringBootTest
class Springboot04JunitApplicationTests {}

2. 测试类不存在于引导类所在的包或者子包中需要通过 classes 属性指定引导类

//加载spring整合junit专用的类运行器
@RunWith(SpringJUnit4ClassRunner.class)
//指定对应的配置信息
@ContextConfiguration(classes = SpringConfig.class)
public class AccountServiceTestCase {//注入你要测试的对象@Autowiredprivate AccountService accountService;@Testpublic void testGetById(){//执行要测试的对象对应的方法System.out.println(accountService.findById(2));}
}

简化方式

@SpringBootTest(classes = Springboot04JunitApplication.class)
class Springboot04JunitApplicationTests {}

原始配置方式

@SpringBootTest
@ContextConfiguration(classes = Springboot04JunitApplication.class)
class Springboot04JunitApplicationTests {}

3. 总结

  1. 导入测试对应的 starter
  2. 测试类使用 @SpringBootTest 修饰
  3. 使用自动装配的形式添加要测试的对象
  4. 测试类如果存在与引导类所在包或子包中无需指定引导类
  5. 测试类如果不存在于引导类所在包或子包中需要通过 classes 属性指定引导类

2. 整合MyBatis

  • 核心配置:数据库连接相关信息(连什么?谁连?什么权限)
  • 映射配置:SQL 映射(XML / 注解)

1. 导入对应的 starter

org.mybatis.spring.bootmybatis-spring-boot-starter2.2.0mysqlmysql-connector-javaruntime

2. 配置数据源相关信息

#2.配置相关信息
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_dbusername: rootpassword: root

3. 实体类

public class Book {private Integer id;private String type;private String name;private String description;
}

4. 映射接口(Dao)

@Mapper
public interface BookDao {@Select("select * from tbl_book where id = #{id}")public Book getById(Integer id);
}

注意:数据库 SQL 映射时需要添加 @Mapper 才能被容器识别

5. 测试类

@SpringBootTest
class Springboot05MybatisApplicationTests {@Autowiredprivate BookDao bookDao;@Testvoid contextLoads() {System.out.println(bookDao.getById(1));}
}

注意:MySql 驱动升级到 8 以后会强制要求配置时区,如果不设置会出现问题。解决办法很简单,在 MySQL 的 url 上面添加上对应的设置即可。

3. 整合MyBatis-Plus、

1. 导入对应的 starter

com.baomidoumybatis-plus-boot-starter3.4.3

2. 配置数据源相关信息

#2.配置相关信息
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_dbusername: rootpassword: root

3. 映射接口(Dao)

@Mapper
public interface BookDao extends BaseMapper {
}

mybatis-plus 的核心在于 Dao 接口继承了一个 BaseMapper 的接口,这个接口中帮助开发者预定了若干个常用的 API 接口,简化了通用 API 接口的开发工作。
在这里插入图片描述

4. 整合Druid

前面整合MyBatis和MP的时候,使用的数据源对象都是SpringBoot默认的数据源对象,下面我们手工控制一下,自己指定了一个数据源对象,Druid。

1. 导入对应的 starter

com.alibabadruid-spring-boot-starter1.2.6

2. 修改配置

spring:datasource:druid:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTCusername: rootpassword: root

在这里插入图片描述

相关内容