【问题标题】:Couldn't connect Springboot project to Mysql database无法将 Springboot 项目连接到 Mysql 数据库
【发布时间】:2021-06-15 09:41:45
【问题描述】:

当我在 Workspace-Spring-Tool-Suite 中运行 SpringBoot 应用程序时,Mysql Workbench 会生成所有表但是 Postman 中的 Get 请求(http://localhost:3308/api/v1/employees) 只返回一个错误(错误:getaddrinfo ENOTFOUND http)

  • Mysql Xampp 正在端口:3308 上运行

UPDATE 现在连接正在工作并在 MYSQL 工作台上生成表,但 localhost 的问题仍然存在它返回 ERR_INVALID_HTTP_RESPONSE WORST是运行SpringBoot App时出现的新问题:ERROR

说明: Web 服务器无法启动。端口 3308 已被使用。 行动: 识别并停止正在侦听端口 3308 的进程,或将此应用程序配置为侦听另一个端口。

注意:我没有将 3308 端口用于任何其他服务。

application.properties

spring.datasource.url=jdbc:mysql://localhost:3308/employee_management_system? 
 useSSL=false
spring.datasource.username=root
spring.datasource.password=
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto = update
server.port=3308

控制器类

package net.javaguides.springboot.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import net.javaguides.springboot.model.Employee;
import net.javaguides.springboot.repository.EmployeeRepository;

@CrossOrigin(origins = "http://localhost:3308")
@RestController
@RequestMapping("/api/v1")
public class EmployeeController {

@Autowired
private EmployeeRepository employeeRepository;

// get all employees
@GetMapping("/employees")
public List<Employee> getAllEmployees(){
    return employeeRepository.findAll();
}       }

运行 Springboot 应用程序 Running Spring-Boot application

员工类

package net.javaguides.springboot.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "employees")
public class Employee {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;

@Column(name = "first_name")
private String firstName;

@Column(name = "last_name")
private String lastName;

@Column(name = "email_id")
private String emailId;

public Employee() {
    
}

public Employee(String firstName, String lastName, String emailId) {
    super();
    this.firstName = firstName;
    this.lastName = lastName;
    this.emailId = emailId;
}
public long getId() {
    return id;
}
public void setId(long id) {
    this.id = id;
}
public String getFirstName() {
    return firstName;
}
public void setFirstName(String firstName) {
    this.firstName = firstName;
}
public String getLastName() {
    return lastName;
}
public void setLastName(String lastName) {
    this.lastName = lastName;
}
public String getEmailId() {
    return emailId;
}
public void setEmailId(String emailId) {
    this.emailId = emailId;
}}

员工存储库类

package net.javaguides.springboot.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import net.javaguides.springboot.model.Employee;

@Repository
public interface EmployeeRepository extends JpaRepository<Employee, Long>{ }

【问题讨论】:

  • 如我所见,这不是连接错误,您能显示更多 Employee 类和 EmployeeRepository 类吗?
  • 我已经编辑了我的问题

标签: mysql database spring-boot api localhost


【解决方案1】:

只需替换

@CrossOrigin(origins = "http://localhost:3308")

通过

@CrossOrigin(origins = "*")

并为您的应用程序使用不同的端口,而不是用于访问您的数据库的相同端口

server.port=8081

【讨论】:

  • 谢谢..当我更改端口时它可以工作:8082 结论:Springboot 和 Xampp 不应该在同一个端口上运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-06
  • 2015-01-25
  • 1970-01-01
  • 2017-06-18
  • 2016-12-03
  • 2014-01-25
相关资源
最近更新 更多