springboot连接数据库踩坑记录

作为一个新手第一次使用springboot,倍感压力。艰难的上手了springboot+maven+mysql的数据库连接之旅
跟着教程开启一系列流程化的操作

  • 在添加pom.xml添加依赖
       <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-jdbcartifactId>
            <version>2.7.1version>
        dependency>
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>8.0.30version>
        dependency>
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>mybatis-plus-boot-starterartifactId>
            <version>3.5.2version>
        dependency>
  • application.properties配置
server.port=3000
spring.datasource.username=pig
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/project?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  • 连接测试
package com.kob.backend;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
import java.sql.SQLException;
@SpringBootTest
class SpringBootJdbcApplicationTests {
    //数据源组件
    @Autowired
    DataSource dataSource;
    @Autowired
    DataSourceProperties dataSourceProperties;
    //用于访问数据库的组件
    @Autowired
    JdbcTemplate jdbcTemplate;
    @Test
    void contextLoads() throws SQLException {
        System.out.println("默认数据源为:" + dataSource.getClass());
        System.out.println(dataSourceProperties.getUsername());
        System.out.println(dataSourceProperties.getPassword());
        System.out.println("数据库连接实例:" + dataSource.getConnection());
        //访问数据库
        Integer i = jdbcTemplate.queryForObject("SELECT count(*) from `user`", Integer.class);
        System.out.println("user 表中共有" + i + "条数据。");
    }
}

第一个坑

于是第一个坑到了!!!
在配置好之后一直显示
com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
这是什么原因呢!
找了好多方法都找不到原因,最后发现了这篇博文数据库连接报错,发现是数据库的user没有任何主机都可以连接的权限,于是在mysql中加上了该权限。

第二个坑

在pom.xml一开始导入了spring-boot-starter-security,然后打开就是login界面,跳转不到其他界面。
解决方法有以下两周:

  • 取消该功能:在主程序采用@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
  • 采用用户名和密码登录:登录页面默认用户名是user,密码是生成的密码

你可能感兴趣的:(数据库,spring,boot,mybatis)