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 |