프로그래밍/백엔드

Springboot에서 DB(mysql, application yml 방식) 연동 및 조회

제로스크랩 2023. 3. 26. 10:35

Springboot에서 gradle library를 사용하는 경우

데이터베이스와 연동하는 방법과 데이터 저장 및 조회를 하는 방법을 간단하게 정리하였다.

  • 데이터베이스연동
  • 데이터베이스 저장 및 조회

데이터베이스 연동

프로젝트의 src > main > resource에서 application.yml 파일 생성

spring:
  datasource:
    url: "jdbc:mysql://localhost/library"
    username: "root"
    password: ""
    driver-class-name: com.mysql.cj.jdbc.Driver

데이터 저장 및 조회

package com.group.libraryapp.controller.user;

import com.group.libraryapp.dto.user.request.UserCreateRequest;
import com.group.libraryapp.dto.user.response.UserResponse;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {

    private final JdbcTemplate jdbcTemplate;

    public UserController(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    @PostMapping("/user") //데이터 저장
    public void saveUser(
        @RequestBody UserCreateRequest request
    ) {
        String sql = "INSERT INTO USER (NAME, AGE) VALUES (?,?)";
        jdbcTemplate.update(sql, request.getName(), request.getAge());
    }

    @GetMapping("/user") //데이터 조회
    public List<UserResponse> getUsers() {
       String sql = "SELECT * FROM USER";
       return jdbcTemplate.query(sql, (rs, rowNum) -> {
           long id = rs.getLong("id");
           String name = rs.getString("name");
           int age = rs.getInt("age");
           return new UserResponse(id, name, age);
       });
    }
}

 

728x90
반응형