CRUD
이번에는 DB와 연동 테스트를 진행해보겠습니다
Controller - Service - Repository 로 구성되는 3 Tier 구조로 작성할예정입니다
application.properties
h2 memory 기반 db를 사용하겠습니다
추가로 h2 console을 활성화 하겠습니다
server.port=80
spring.application.name=tutorial
springdoc.swagger-ui.path=/
# h2-console
spring.h2.console.enabled=true
spring.h2.console.path=/h2
# h2-database
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.username=sa
spring.datasource.password=
entity.Sensor.java
예제를 어떤 주제로 만들까 생각하다가 간단한 홈 네트워크 구조를 만들려고 합니다.(변경될 수 있습니다)
먼저 튜토리얼 끝내놓고 다시 생각해보겠습니다
일단 그래서 근간이 되는 센서 테이블을 작성합니다
@Entity
@Getter
@Setter
@Table(name = "sensors")
public class Sensor {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String code;
private String name;
private String type; // 온도, 습도, 전력, 움직임 등
}
repository.SensorRepository.java
public interface SensorRepository extends JpaRepository<Sensor, Long> {
}
service.SensorService.java
이번 글에서는 편의상 Entity Class를 매개변수로 넣지만 이렇게 쓰지 말아주세요
@Service
@Transactional
@RequiredArgsConstructor
public class SensorService {
private final SensorRepository sensorRepository;
public List<Sensor> select() {
return sensorRepository.findAll();
}
public Sensor create(Sensor param) {
return sensorRepository.save(param);
}
public Sensor update(Sensor param) {
return sensorRepository.save(param);
}
public boolean delete(Long param) {
sensorRepository.deleteById(param);
return true;
}
}
controller.SensorController.java
@RestController
@RequestMapping("api/sensor")
@RequiredArgsConstructor
public class SensorController {
private final SensorService sensorService;
@GetMapping
public List<Sensor> select() {
return sensorService.select();
}
@PostMapping
public Sensor create(@RequestBody Sensor param) {
return sensorService.create(param);
}
@PutMapping
public Sensor update(@RequestBody Sensor param) {
return sensorService.update(param);
}
@DeleteMapping("{id}")
public boolean delete(@PathVariable("id") Long param) {
return sensorService.delete(param);
}
}
이제 localhost로 접속해서 POST 요청을 날려 데이터를 생성해보거나
PUT 요청을 날려 데이터를 수정해보세요
http://localhost/h2/login.jsp 로 접속해서
위 화면이 나오는데 위 처럼 입력하고 connect를 누르면 다음과 같은 화면이 나옵니다
여기서 좌측 상단에 보이는 SENSORS를 클릭하고
Run 또는 Ctrl + Enter 키를 누르면 POST 요청으로 전송했던 데이터를 확인할 수 있습니다.
몇줄 작성하지도 않았는데 CRUD가 완성됐습니다.
코드는 다음 github 주소에서 확인할 수 있습니다
'JAVA > SPRING' 카테고리의 다른 글
Spring Boot 3 Tutorial - 5 Security(2) (0) | 2024.04.16 |
---|---|
Spring Boot 3 Tutorial - 5 Security(1) (2) | 2024.04.12 |
Spring Boot 3 Tutorial - 4 QueryDsl (0) | 2024.04.08 |
Spring Boot 3 Tutorial - 3 DBMS switch (0) | 2024.04.04 |
Spring Boot 3 Tutorial - 1 Hello World (0) | 2024.04.04 |