当我试图从我的MySQL数据库codedecode使用HTTP获取方法访问数据无论是在浏览器客户端或 Postman 客户端有空花括号数组[{}]显示。但是,我的数据库里有数据。我已经附上了我所有的代码,包括我的Pom.xml和我的项目的应用程序 prop 的依赖关系。
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.codedecode</groupId>
<artifactId>CodeDecodeCRUD</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>CodeDecodeCRUD</name>
<description>Demo project for Spring Boot and Hibernate</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
字符串
Spring Container
package com.codedecode.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class CodeDecodeCrudApplication {
public static void main(String[] args) {
SpringApplication.run(CodeDecodeCrudApplication.class, args);
}
}
型
员工休息控制器
package com.codedecode.demo.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.codedecode.demo.entity.Employee;
import com.codedecode.demo.repos.EmployeeCrudRepo;
@RestController
@RequestMapping("/code")
public class EmployeeController {
@Autowired
EmployeeCrudRepo empCrud;
@GetMapping("/getall")
public List<Employee> getAllEmployees() {
System.out.println("getting all employees");
return empCrud.findAll();
}
}
型
员工主体
package com.codedecode.demo.entity;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Data;
@Entity
@Table(name = "emp")
@Data
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
}
型
员工CRUD仓库
package com.codedecode.demo.repos;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.codedecode.demo.entity.Employee;
@Repository
public interface EmployeeCrudRepo extends JpaRepository<Employee, Long>{
}
型
应用.属性
#server.port=9090
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/codedecode?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto=create
#spring.jpa.show-sql=true
#spring.jpa.properties.hibernate.format_sql=true
型
我用的是,MySQL v8.0.33,Spring v3.1.1,Java v17,STS v4,lombok v1.18.28
我试着检查我的MySQL数据库的配置,但一切正常。服务器运行时创建表。
我试着重新检查我的代码和所有的依赖项,但找不到任何问题。
1条答案
按热度按时间izkcnapc1#
以下是您可以检查的几个事项来解决问题:
codedecode
)是否存在,并且可以使用提供的凭据(root/root
)进行访问。codedecode
数据库中的emp
表并确保它包含数据。Employee
实体类(com.codedecode.demo.entity.Employee
)是否正确Map到数据库中的emp
表。id
,name
)。jakarta.persistence.*
和lombok.*
)导入@Entity
、@Table
和@Data
注解。EmployeeCrudRepo
接口(com.codedecode.demo.repos.EmployeeCrudRepo
)正确扩展了JpaRepository
。application.properties
文件位于正确的目录(src/main/resources
)中,并且应用程序正在拾取该文件。mysql-connector-java
)是否被Maven正确解析并包含在类路径中。spring.datasource.url
、spring.datasource.username
和spring.datasource.password
属性是否正确配置为连接到MySQL服务器。application.properties
:字符串
通过查看这些方面,您应该能够识别导致空JSON响应的问题。此外,检查应用程序日志和任何错误消息可以提供对问题的有价值的见解。