DB 연결 (spring.datasource)

[대표 속성 4개]

  • spring.datasource.driver-class-name :
  • spring.datasource.url : jdbc:<데이터베이스 종류>://<호스트>:<포트> /<스키마명(데이터베이스명)>
  • spring.datasource.username : 계정 아이디
  • spring.datasource.password : 계정 비밀번호

[spring.datasource.driver-class-name 작성 예시]

  • mariadb: spring.datasource.driver-class-name = org.mariadb.jdbc.Driver
  • mysql: spring.datasource.driver-class-name = com.mariadb.jdbc.Driver

[spring.datasource.url 작성 예시]

  • 로컬: spring.datasource.url = jdbc:mariadb://localhost:3306/localpms

요청 파라미터 설정 방법

PathVariable

의미 : uri 경로에 포함된 값을 변수로 맵핑
사용처 : RESTful 스타일 API에서 특정 리소스를 식별할 때

@GetMapping("/users/{id}")
public String getUser(@PathVariable("id") Long id){
    return "User id: " + id;
}

특징 :

  • URL 경로의 일부(.../users/10)를 그대로 변수 id=10에 바인딩
  • 주로 리소스 식별자(ID 등) 전달

RequestParam

의미: URL 쿼리 파라미터나 form-data의 key-value를 매핑
사용처: 검색 조건, 페이징 옵션 등 선택적 파라미터 전달할 때

@GetMapping("/users)
public String searchUser(@RequestParam String name,
                        @RequestParam(defaultValue="1") int page) {
    return "Name: " + name + ", Page: " + page;                        
}

특징 :

  • key=value 형태의 데이터와 매핑
  • defaultValue 지정 가능
  • 선택적으로 사용할 수 있으며, 주로 옵션성 데이터 전달

RequestBody
의미 : HTTP 요청의 Body(JSON, XML 등)를 객체로 역직렬화
사용처 : POST/PUT/PATCH 요청 시 대량의 구조화된 데이터(DTO, JSON 등) 전달할 때

@PostMapping("/users")
public String createUser(@RequestBody UserDto user){
    return "Created user: " + user.getName();
}

특징 :

  • 주로 application/json과 함께 사용
  • Jackson 같은 메시지 컨버터가 JSON -> 객체 변환 수행
  • 대규모 데이터 교환, 복잡한 구조 데이터를 처리할 때 적합

+ Recent posts