Dee*_*ika 5 java spring maven spring-data-jpa spring-boot
我是 Spring Boot 的新手,我用 Spring Boot 创建了一个多模块项目(maven)。我创建了一些 REST API 并连接到 H2 数据库。数据库连接成功,可以在localhost运行。
这是我的项目树.. User-Management 是父模块和核心,serverAPI 是子模块。我为每个模块创建了包并添加了相关的类。
我已经尝试了我所知道的一切,并在谷歌上搜索了大约 5 天,但没有任何效果对我有用。我已经包括了我在这里写的每一个代码。请帮我找出问题所在。(我使用的是intellij idea 2020.3 Ultimate)
用户.java
package com.hms.usermanagement.core.model;
import javax.persistence.*;
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(name = "full_name")
private String fullName;
@Column(name = "email")
private String email;
public User() {
}
public User(long id, String fullName, String email) {
this.id = id;
this.fullName = fullName;
this.email = email;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}}
Run Code Online (Sandbox Code Playgroud)
用户库
package com.hms.usermanagement.core.repository;
import com.hms.usermanagement.core.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends JpaRepository<User,Long> {
}
Run Code Online (Sandbox Code Playgroud)
应用
package com.hms.usermanagement.serverAPI.application;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args){
SpringApplication springApplication = new SpringApplication(Application.class);
springApplication.run(args);
}}
Run Code Online (Sandbox Code Playgroud)
用户控制器
package con.hms.usermanagement.serverAPI.controller;
import com.hms.usermanagement.core.model.User;
import com.hms.usermanagement.core.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Optional;
@RestController
@RequestMapping("/api")
public class UserController {
@Autowired
private UserRepository userRepository;
//Create Users
@PostMapping("/user")
public User createUser( @Validated @RequestBody User user){
return userRepository.save(user);
}
//View all Users
@GetMapping("/users")
public List<User> getAllUsers(){
return userRepository.findAll();
}
//Update Users
@PutMapping("/users/{id}")
public ResponseEntity <User> updateUser(@PathVariable(value = "id") long userId , @RequestBody User userDetails){
Optional<User> user = userRepository.findById(userId);
if(user.isPresent()){
User _user = user.get();
_user.setFullName(userDetails.getFullName());
_user.setEmail(userDetails.getEmail());
return new ResponseEntity<>(userRepository.save(_user), HttpStatus.OK);
}else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
//Delete Users
@DeleteMapping("/users/{id}")
public ResponseEntity<?> deleteUser(@PathVariable(value = "id") long userId){
userRepository.findById(userId);
userRepository.deleteById(userId);
return ResponseEntity.ok().build();
}
Run Code Online (Sandbox Code Playgroud)
应用程序属性
spring.datasource.url=jdbc:h2:~/test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
#enable H2 console
spring.h2.console.enabled=true
#custom H2 console
spring.h2.console.path=/h2
Run Code Online (Sandbox Code Playgroud)
架构-h2.sql
CREATE TABLE users (id long PRIMARY KEY AUTO_INCREMENT, full_name VARCHAR(30), email VARCHAR(50));
Run Code Online (Sandbox Code Playgroud)
小智 -1
删除@Validated并尝试@Valid如下
使用 [LOCALHOST]:[PORT]/api/user 调用
//Create Users
@PostMapping("/user")
public User createUser(@RequestBody @Valid User user){
return userRepository.save(user);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
322 次 |
| 最近记录: |