MySQL 을 이용한 데이타 엑세스

By | 2021년 7월 17일
Table of Content

MySQL 을 이용한 데이타 엑세스

목표

MySQL 데이타베이스를 이용해, 데이타를 insert/update/select 를 수행합니다.

프로젝트 생성

신규 프로젝트를 생성합니다.

의존성은 DevTools, Lombok, Spring Web, Thymeleaf, Spring Data JPA, MySQL 을 선택합니다.

파일 추가

Entity 생성

User.java 를 생성합니다.

@Entity
public class User {
    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    private Integer id;

    private String name;

    private String email;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

Repository 생성

UserRepository.java 를 생성합니다.

public interface UserRepository extends CrudRepository<User, Integer> {

}

Controller 생성

MainController.java 를 생성합니다.

@Controller // 컨트롤러임을 명시합니다.
@RequestMapping(path="/demo") // URL 중 /demo 로 시작하는 URL 을 매핑합니다.
public class MainController {

    @Autowired // 아래 클래스가 스프링에 의해 자동생성됨을 표시합니다.
    private UserRepository userRepository;

    @PostMapping(path="/add") // POST 요청에만 대응합니다.
    public @ResponseBody
    String addNewUser (@RequestParam String name
            , @RequestParam String email) {

        // @ResponseBody 는 리턴값이 브라우저에 전송되는 데이타임을 의미합니다.
        // (템플릿 파일을 찾지 않고 그대로 리턴값을 브라우저에 전송합니다.)

        // @RequestParam 를 지정해서 URL 파라미터가 각각의 변수에 자동 할당됩니다.

        User n = new User();
        n.setName(name);
        n.setEmail(email);
        userRepository.save(n);
        return "Saved";
    }

    @GetMapping(path="/all")
    public @ResponseBody Iterable<User> getAllUsers() {

        return userRepository.findAll();
    }
}

MySQL 설정

create database db_example;

use db_example;

CREATE TABLE `user` (
    `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `email` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    `name` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_general_ci'
)
COLLATE='utf8_general_ci'
ENGINE=INNODB;

application.properties 설정

# spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword
spring.datasource.driver-class-name =com.mysql.jdbc.Driver
#spring.jpa.show-sql: true

프로젝트 실행

프로젝트를 실행 후 아래 명령을 입력해서 데이타를 입력합니다.

curl localhost:8080/demo/add -d name=First -d email=someemail@someemailprovider.com

아래 링크를 열어 데이타가 입력되었는지 확인합니다.

http://localhost:8080/demo/all

One thought on “MySQL 을 이용한 데이타 엑세스

  1. Pingback: Spring Boot 시작하기 – 상구리의 기술 블로그

답글 남기기