Mybatis的使用和数据库的连接

文章讲述了如何在SpringBoot项目中添加Mybatis和MySQL的依赖,并在application.properties或YAML文件中配置数据库连接信息。同时,通过测试类检查数据库连接的正确性,列举了配置错误时可能出现的异常情况。
摘要由CSDN通过智能技术生成

1.在pom.xml文件里添加Mybatis依赖和连接数据库的依赖

<dependencies>
<!-- 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>
</dependencies>

由于Spring Boot存在自动配置,当添加了数据库编程相关的依赖项后,无论是启动项目,还是执行任何Spring Boot测试,都会尝试读取连接数据库的配置信息,如果还没有添加相关配置,会导致启动失败/测试失败,例如:

 2.0 关于Spring Boot的配置文件

application.properties中添加连接数据库的配置:

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

 2.1 关于YAML配置

YAML是一种编写配置文件的语法,表现为以.yml作为扩展名的文件。

相比.properties文件,其语法的改变有:

  • 原属性名中有小数点的部分,改为使用冒号+换行后空2格
  • 原属性名与属性值使用等于号分隔,改为使用冒号+1个空格
  • 如果多个配置中,属性名有相同的部分,则不必配置相同的部分,保持对应的空格(缩进)即可:
    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/mall_pms?characterEncoding=utf-8&useUnicode=true&serverTimezone=Asia/Shanghai
        username: root
        password: root

    主配置YAML文件中配置

    # Spring相关配置
    spring:
      # Profile配置
      profiles:
        # 激活哪些Profile配置
        active: dev
    # Mybatis相关配置
    mybatis:
      # 配置SQL语句的XML文件所在的位置
      mapper-locations: classpath:mapper/*.xml
    

  • 在开发阶段的dev里

  • # 服务器配置
    server:
      # 服务端口
      port: 10009
    
    # Spring相关配置
    spring:
      # 数据源相关配置
      datasource:
        # 连接数据库的URL
        url: jdbc:mysql://localhost:3306/you?characterEncoding=utf-8&useUnicode=true&serverTimezone=Asia/Shanghai
        # 登录数据库的用户名
        username: root
        # 登录数据库的密码
        password: root
        driver-class-name: com.mysql.cj.jdbc.Driver

  • **注意:**YAML语法要求是严格的,必须按照以上语法规则,例如每次换行后需要添加2个空格,不可以使用TAB制表位取代,属性名与属性值之间,冒号的右侧必须有1个空格。在Spring框架中,并不直接识别YAML语法的配置,在Spring Boot项目中,基础依赖项(spring-boot-starter)中已经包含解析YAML配置的工具包(snakeyaml),可以直接识别并解析YAML语法的配置文件。

  • 在Spring Boot项目中,对.yml文件的支持,与对.properties文件的是完全相同的,即:你可以将所有.properties文件改成.yml文件,再调整配置文件内部的语法即可。

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

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

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

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

配置出错的报错信息:

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

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

2.当配置的spring.datasource.url中的主机名部分有误时,会出现错误:

Caused by: java.net.UnknownHostException: localhast

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

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

4.当配置的spring.datasource.url中的serverTimezone参数值有误时,会出现错误:

Caused by: java.time.zone.ZoneRulesException: Unknown time-zone ID: Asia/ShangHai

5.当配置的spring.datasource.username的值有误时,会出现错误:

java.sql.SQLException: Access denied for user 'root123'@'localhost' (using password: YES)

6.当配置的spring.datasource.password和username的值有误时,会出现错误:

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~呦…城~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值