springboot整合第三方技术(Junit/Mybatis/Mybatis-plus/Druid)

文章详细介绍了如何在SpringBoot项目中整合Junit进行测试,包括测试类的位置要求和使用@SpringBootTest注解的调整。接着,文章讲述了如何导入MyBatis框架和配置数据库连接信息,以及解决MyBatis-Plus坐标找不到的问题。最后,文章讨论了Druid数据源的集成,包括选择合适的坐标和配置方式。
摘要由CSDN通过智能技术生成

整合Junit

  • 一般创建springboot工程时,会自带test相关的依赖。如果该依赖没有,需要自动导入,依赖如下:
<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
  • 然后在test目录下会有一个XXXXApplicationTests。该启动类上有一个注解@SpringBootTest ,它的作用是设置Junit加载的SpringBoot的启动类。
  • 如果将测试类换一个地方,该测试类是否可用呢?- 当测试类找不到引导类的时候,该测试类就不可用了。所以当我们把测试类移动到引导类所在包及其子包下的时候,测试类是可以正常使用的,否则就会报错。当出现这类问题时,我们可以通过报错信息快速定位该问题,去查看测试类所在的位置是否满足条件。
  • 那当测试类不在引导类下,我们该怎么解决这个问题呢? - 我们可以在@SpringBootTest注解中将classes属性设置为引导类的class(也就是显式地表明引导类是谁)。如下所示:
@SpringBootTest(classes = Springboot0101QuickstartApplication.class)
// 两者选其一即可
@ContextConfiguration(classes = Springboot0101QuickstartApplication.class)

那么为什么测试类在引导类所在包及其子包下的时候,就不会有问题呢?

  • 因为测试类启动会先去找SpringBootConfiguration,而这个一般都在引导类的中,所以当他们在同一包下,测试类就不会有问题。

整合MyBatis

注意:勾选dependencies是boot项目的一个重要思想,根据你需要的技术选择对应的坐标。
此处,我们就需要勾选SQL ->中的MyBatis Framework 和 MySql Driver

  1. 导入相应的starter
<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.2.0</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
  1. 配置数据库连接的相关信息
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ssm_db?serverTimeZone=UTC
    username: root
    password: 

注意:如果mysql版本是8.0以上:1、serverTimeZone=UTC 表示服务器时区,不加的话会报相关异常
2、driver-class-name需要改成com.mysql.cj.jdbc.driver
3. 创建实体类、Mapper、并编写操作sql等步骤即可。

整合MyBatis-PLus

遇到的问题:
1、与导入junit和mybatis的坐标步骤相同,但是在坐标选择时找不到有关mybatis-plus的坐标。(由于springboot中未收录)
-第一种做法:新建一个模块 -> Custom: 输入阿里云的地址来帮忙创建(https://start.aliyun.com)-> next ->在关系型数据库中选择mybatis plus framework 和 mysql driver(此处注意版本的问题,不要太高也不要太低)-> next ->创建成功
-第二种做法:与之前一样,在引入坐标时仅仅引入mysql driver的驱动。-> 打开maven 仓库的网站(mvnrepository.com)-> 搜索mybatis plus 选择对应的版本并复制maven坐标,去pom文件粘贴并刷新maven依赖。
2、后续使用

  • 在配置文件中配置数据库连接的配置
  • 编写实体类和相应的mapper接口或dao接口
  • 在mapper接口或dao接口后继承BaseMapper<实体类>,此处如果没有在启动类上扫描mapper,则必须加上@Mapper的注解将其注入spring容器。
  • 在测试类中编写测试方法,此时可能会报有关找不到表的异常。原因是mybatis-plus在帮助我们做自动映射的时候是不知道表明的。
    解决方案:① 编写有关mybatis-plus的配置;

设置mp的相关配置(设置表名的前缀)
mybatis-plus.global-config.db-config.table-prefix = tbl_

整合Druid

  • 新建模块 -> 导入坐标(没有druid坐标故需手动输入)-> 配置数据源是给数据库技术用的,所以勾选mybatis和mysql的坐标
  • 去mvnrepository中搜索druid,会发现有一个alibaba的druid还有一个druid spring boot starter ,此时我们选择后者。复制坐标粘贴至pom文件中并刷新maven依赖
  • 在配置文件中配置:第一种做法(通用,并不局限druid),接着我们上述已经配置过的数据库连接信息后添加一个属性type,值为com.alibaba.druid.pool.DruidDataSource,但是这种做法并不推荐。第二种做法:将之前的配置注释,重新写成以下形式。
spring:
  datasource:
  	druid:
    	driver-class-name: com.mysql.jdbc.Driver
    	url: jdbc:mysql://localhost:3306/ssm_db?serverTimeZone=UTC
    	username: root
    	password: 

上述配置就表明了druid专用的配置。

总结

  1. 创建新模块,选择Spring初始化,并配置模块相关基础信息
  2. 选择当前模块需要使用的技术集(mybatis 、mysql)
  3. 设置配置参数
  4. 定义数据层接口与映射配置
  5. 测试类中注入Dao接口测试
  6. 整合第三方技术通用方式:
    - 导入对应的starter
    -根据提供的配置格式,配置非默认值对应的配置项
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值