初始化项目
This commit is contained in:
13
src/main/java/com/tem/bocai/BocaiApplication.java
Normal file
13
src/main/java/com/tem/bocai/BocaiApplication.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package com.tem.bocai;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class BocaiApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(BocaiApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
17
src/main/java/com/tem/bocai/config/CorsConfig.java
Normal file
17
src/main/java/com/tem/bocai/config/CorsConfig.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package com.tem.bocai.config;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
@Configuration
|
||||
public class CorsConfig implements WebMvcConfigurer {
|
||||
@Override
|
||||
public void addCorsMappings(CorsRegistry registry) {
|
||||
registry.addMapping("/api/**")
|
||||
.allowedOrigins("*") // 在生产环境中应该限制具体的域名
|
||||
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
|
||||
.allowedHeaders("*")
|
||||
.allowCredentials(false);
|
||||
}
|
||||
}
|
||||
63
src/main/java/com/tem/bocai/controller/UserController.java
Normal file
63
src/main/java/com/tem/bocai/controller/UserController.java
Normal file
@@ -0,0 +1,63 @@
|
||||
package com.example.bocai.controller;
|
||||
|
||||
import com.example.bocai.entity.User;
|
||||
import com.example.bocai.repository.UserRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/users")
|
||||
public class UserController {
|
||||
@Autowired
|
||||
private UserRepository userRepository;
|
||||
|
||||
// 获取所有用户
|
||||
@GetMapping
|
||||
public List<User> getAllUsers() {
|
||||
return userRepository.findAll();
|
||||
}
|
||||
|
||||
// 根据ID获取用户
|
||||
@GetMapping("/{id}")
|
||||
public ResponseEntity<User> getUserById(@PathVariable Long id) {
|
||||
Optional<User> user = userRepository.findById(id);
|
||||
return user.map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.notFound().build());
|
||||
}
|
||||
|
||||
// 创建新用户
|
||||
@PostMapping
|
||||
public User createUser(@RequestBody User user) {
|
||||
return userRepository.save(user);
|
||||
}
|
||||
|
||||
// 更新用户
|
||||
@PutMapping("/{id}")
|
||||
public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User userDetails) {
|
||||
Optional<User> user = userRepository.findById(id);
|
||||
if (user.isPresent()) {
|
||||
User updatedUser = user.get();
|
||||
updatedUser.setName(userDetails.getName());
|
||||
updatedUser.setEmail(userDetails.getEmail());
|
||||
updatedUser.setPassword(userDetails.getPassword());
|
||||
return ResponseEntity.ok(userRepository.save(updatedUser));
|
||||
} else {
|
||||
return ResponseEntity.notFound().build();
|
||||
}
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
@DeleteMapping("/{id}")
|
||||
public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
|
||||
Optional<User> user = userRepository.findById(id);
|
||||
if (user.isPresent()) {
|
||||
userRepository.delete(user.get());
|
||||
return ResponseEntity.noContent().build();
|
||||
} else {
|
||||
return ResponseEntity.notFound().build();
|
||||
}
|
||||
}
|
||||
}
|
||||
18
src/main/java/com/tem/bocai/entity/User.java
Normal file
18
src/main/java/com/tem/bocai/entity/User.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package com.example.bocai.entity;
|
||||
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.GenerationType;
|
||||
import jakarta.persistence.Id;
|
||||
import lombok.Data;
|
||||
|
||||
@Entity
|
||||
@Data
|
||||
public class User {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
private String name;
|
||||
private String email;
|
||||
private String password;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.example.bocai.repository;
|
||||
|
||||
import com.example.bocai.entity.User;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface UserRepository extends JpaRepository<User, Long> {
|
||||
User findByEmail(String email);
|
||||
}
|
||||
11
src/main/resources/application.properties
Normal file
11
src/main/resources/application.properties
Normal file
@@ -0,0 +1,11 @@
|
||||
# SQLite数据库配置
|
||||
spring.datasource.url=jdbc:sqlite:bocai.db
|
||||
spring.datasource.driver-class-name=org.sqlite.JDBC
|
||||
spring.datasource.username=
|
||||
spring.datasource.password=
|
||||
|
||||
# JPA配置
|
||||
spring.jpa.hibernate.ddl-auto=update
|
||||
spring.jpa.show-sql=true
|
||||
spring.jpa.database-platform=org.hibernate.community.dialect.SQLiteDialect
|
||||
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
|
||||
Reference in New Issue
Block a user