SpringBoot03----------整合第三方技术

本文详细介绍了如何在SpringBoot项目中整合JUnit进行测试,以及如何集成MyBatis和MyBatis-Plus。还探讨了SpringBoot与Druid数据源的配合使用,包括配置和测试。同时,文章提到了在不同版本间可能出现的问题及解决方案,如时区设置等。
摘要由CSDN通过智能技术生成

SpringBoot整合JUnit

貌似不用手动整合,创建一个springboot模块就有,是通过@SpringBootTest这个注解定义测试类的

  • dao
public interface BookDao{
    public void save();
}
  • daoImpl
@Repository
public class BookDaoImpl implements BookDao {
    @Override
    public void save() {
        System.out.println("bookdao test");
    }
}
  • test类
@SpringBootTest
class Springboot0301JunitApplicationTests {
    @Autowired
    private BookDao bookDao;

    @Test
    void contextLoads() {
        bookDao.save();
    }

}

它不用整合的原因是创建工程的时候自带有测试对应的starter且存在@SpringBootTest注解修饰的测试类
在这里插入图片描述

  • 测试类的位置
    当测试类位于引导类所在的包或者子包下没有任何问题,但是如果不在就会爆错。解决方法:
    • 01:再SpringBoot注解添加classes属性@SpringBoot(classes = 引导类类名.class)
      原因spring整合junit需要RunWith和ContextConfiguration,分别用于设置运行器指定配置文件/配置类
    • 02:使用@ContextConfiguration(引导类.class)

SpringBoot整合MyBatis

创建新模块,勾选mybatis framework和sql Driver
在这里插入图片描述

  • mybatis相关的starter
    这里创建工程勾选相对应的模块会自动创建
<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
  • 数据库配置信息
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ssm_crud
    username: root
    password: "!Wzh2352186607"
  • 实体类封装数据
public class Dept {
    private Integer deptId;
    private String deptName;
    ..........
  • 映射配置
    也可以用Repository注解,二者的区别可以参考:
    https://www.jianshu.com/p/34f48d31edee。当然mapper也可以去掉,但是应该在启动类加上mapperscan
@Mapper
public interface BookDao {
    @Select("select * from tbl_dept where dept_id=#{deptId}")
    public Dept getById(Integer deptId);
}
  • test
@SpringBootTest
class Springboot0302MyBatisApplicationTests {
    @Autowired
    private BookDao bookDao;

    @Test
    void contextLoads() {
        System.out.println(bookDao.getById(1));
    }
}

更改springboot的版本再次运行报错,说需要设置服务器的时区?(这是mysql5和8的区别?)
在这里插入图片描述
评论区有人说写成serverTimeZone=Asia/Shanghai
在这里插入图片描述
classpath代表的时编译后的classes文件夹

SpringBoot整合Mybatis-plus

创建新模块

找不到mybatis-plus只有mysql Driver。

  • 解决方法1:
    解决方法:创建模块的时候下载地址选择阿里云的https://start.aliyun.com
    勾选模块
    在这里插入图片描述
  • 解决方法2:
    还是使用之前的方式创建,只导入mysql的驱动。
    搜索mp的starter的坐标,复制到pom
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.0</version>
</dependency>

删除原来的boot的起步依赖

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

配置连接

注意表名需要配置前缀(因为表名和实体类名查了一个前缀)

mybatis-plus:
  global-config:
    db-config:
      table-prefix: tbl_

复制之前的实体类,dao

修改dao

@Mapper
public interface BookDao extends BaseMapper<Book> {
 
}

修改实体类

public class Dept{
    @TableId(value = "dept_id")
    private Integer deptId;
    @TableField(value = "dept_name")
    private String deptName;
    ..........

BaseMapper里面有很多增删改查的方法

测试

@SpringBootTest
class Springboot0303MpApplicationTests {

    @Autowired
    private BookDao bookDao;

    @Test
    void contextLoads() {
        System.out.println(bookDao.selectById(2));;
    }

}

在这里插入图片描述
在这里插入图片描述

SpringBoot整合Druid

创建模块勾选驱动和mybaits,

  • 手动导入druid的starter
  • 配置数据源(两种方式)
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值