要在Spring Boot 中使用JPA读取数据库,首先需要配置pm.xml文件,将以下依赖添加到里面,如果报红无法记载maven的话就要指定版本像<version>8.0.23</version>一样
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
然后需要配置相关的application.properties文件以方便链接数据库,其中要把test_user替换成你的数据库的名称,同时也要确保username和password是正确的。这里只需要建立test_user数据库就行了,表的话会自动生成的
spring.datasource.url=jdbc:mysql://localhost:3306/test_user?useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
以下部分的代码如果报红可能是没有导入类,可以通过alt+enter键快速导入
然后需要创建一个类来定义数据类型并根据这个类来生成表,@Table那里可以换成你想要的表的名称,getter和setter的设置是必要的,否则获取过来的数据看不到内容,可以通过右键》生成》getter和setter快速添加,使用本方法添加的前提是写好了private的属性
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "user_name")
private String userName;
public Long getId() {
return id;
}
//getter和setter
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
然后需要建立一个JPA仓库,获取jpa库里控制mysql数据库的方法
package com.example.testjpa.repository;
import com.example.testjpa.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
public interface UserRepository extends JpaRepository<User,Integer>, JpaSpecificationExecutor<User> {
}
接下来需要创建一个服务类来使用仓库,这里是通过调用上面的文件的方法来操控数据库,如要补充功能可以按需要在这两个文件中按需求添加
@Service
public class UserService {
@Resource
private UserRepository repository;
public List<User> findAll() {
return repository.findAll();
}
}
最后是需要一个控制器来调用方法,这里使用接口来使用方法
@RestController
public class UserController {
@Resource
private UserService service;
@GetMapping("/user")
public List<User> getAllYourEntities() {
return service.findAll();
}
}
还有一点就是别忘了数据库里有数据才能查到数据,以下是展示效果,可以通过apifox等软件输入网站查询,或者在地址栏输入localhost:8080/user查询,当然是你没改端口号的情况下