当前位置: 首页 > article >正文

后端项目连接数据库-添加MyBatis依赖并检测是否成功

一.在pom.xml添加Mybatis相关依赖

在Spring Boot项目中,编译时会自动加载项目依赖,然后使用依赖包。
需要在根目录下pom.xml文件中添加Mybatis依赖项
在这里插入图片描述

<!-- Mybatis整合Spring Boot的依赖项 -->
<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存在自动配置,当添加了数据库编程相关的mybatis依赖项后,无论是启动项目,还是执行任何Spring Boot测试,都会尝试读取连接数据库的配置信息,如果还没有添加相关配置,会导致启动失败/测试失败

二.在application.properties文件中添加数据库连接配置

在Spring Boot项目中,在src/main/resources文件夹下存在application.properties文件,此文件是Spring Boot会自动读取的配置文件。
在这里插入图片描述

application.properties中,需要按照特定的属性名进行配置,则Spring Boot读取到了这些特定的配置后,会自动应用起来!

# 添加连接数据库的配置:
spring.datasource.url=jdbc:mysql://localhost:3306/mall_pms?characterEncoding=utf-8&useUnicode=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root

三.检测连接数据库的配置是否正确

在项目中原本已经存在的测试类SmallApplicationTests类中,添加以下代码,并执行测试:

    /**
     *  注意:导java.sql包中的接口
     */
    @Autowired
    DataSource dataSource;

    @Test
    void getConnection() throws Throwable {
        // 调用getConnection()时会连接数据库,则可以判断配置的连接信息是否正确
        dataSource.getConnection();
    }

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

四.连接失败,可能问题

1.当配置的spring.datasource.url的值的格式有误时,会出现错误:

Caused by: java.lang.IllegalArgumentException: URL must start with 'jdbc'

2.当配置的spring.datasource.url中的端口号部分有误时,会出现错误:

Caused by: java.net.ConnectException: Connection refused: connect

3.Failed to load driver class com.mysql.cj.jdbc.Driver异常

创造价值,乐哉分享!


http://www.kler.cn/news/155626.html

相关文章:

  • flutter开发实战-为ListView去除Android滑动波纹
  • 在cmd下查看mysql表的结构信息
  • 【Android踩过的坑】13.Android Studio 运行成功,但APP没有安装上的问题
  • electron打包 Error output: !include: could not find:
  • 挖漏洞之SQL注入
  • Python---格式化输出与%百分号----涉及转义符 \ 反斜杠的使用
  • FLASK博客系列5——模板之从天而降
  • electerm下载和安装
  • YOLOv7+姿态估计Pose+tensort部署加速
  • MDETR 论文报告
  • MySQL中的锁(简单)
  • thinkphp 判断当前页 导航条高亮等方法
  • Android 13 - Media框架(21)- ACodec(三)
  • selinux-policy-default(2:2.20231119-2)软件包内容详细介绍(5)
  • 【深度学习实验】图像处理(四):PIL——自定义图像数据增强操作(图像合成;图像融合(高斯掩码))
  • 链表算法总结
  • Apache Doris 整合 FLINK 、 Hudi 构建湖仓一体的联邦查询入门
  • 接口测试快速入门 以飞致云平台为例
  • Selenium Grid
  • OpenCV入门11——图像的分割与修复
  • Helix QAC 2023.3版本发布,新增对C++20的支持等多个功能,实现100%MISRA C++:2023®规则覆盖
  • centos7中通过kubeadmin安装k8s集群
  • 解决OSError: [Errno 28] No space left on device报错和搭建AIrtest无线配置手机集群
  • PyQt基础_007_ 按钮类控件QCombox
  • matplotilb画图
  • 数学字体 Mathematical fonts
  • 渗透测试学习day4
  • RedisTemplate的配置和讲解以及和StringRedisTemplate的区别
  • 分享一个国内可用的免费AI-GPT网站
  • PHP字符串面试题