새로운 프로젝트를 만들어 보도록 하겠습니다.

 

스프링 부트 스타터 프로젝트를 만들면 이렇게 스타터 프로젝트를 만들 수 있게 됩니다.

 

Java Version은 가지고있는 jdk 버전에 맞춰주어야겠죠? 아마 스프링 3버전 이후부터는 8버전을 못 쓴다는 이야기를 들었던 것 같습니다.

 

스프링 부트의 버전은 최대한 낮은걸 선택했습니다. 버전이 낮아야 정보가 많아 공부하기 유리할 것이라 생각했기 때문입니다.

 

의존성은 저렇게 4개를 추가해주었는데, 나중에 필요한게 생기면 추가적으로 pom.xml에서 넣어주면 되니까 가볍게 넘어가도 될 것 같습니다.

 

JPA는 데이터베이스를 다루는 것이니 DB도 하나 다운로드 받아주면 좋겠네요

 

 https://dev.mysql.com/downloads/windows/installer/8.0.html

 

MySQL :: Download MySQL Installer

Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer 8.0.33 2.4M (mysql-installer-web-community-8.0.33.0.msi) MD5: 2a330cf24915964cca87e04dbb34e5d3 | Signatu

dev.mysql.com

 

https://hongong.hanbit.co.kr/mysql-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-%EB%B0%8F-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0mysql-community-8-0/

 

MySQL 다운로드 및 설치하기(MySQL Community 8.0)

SQL을 본격적으로 사용하려면 DBMS를 설치해야 합니다. 여러 가지 DBMS 중에서 MySQL 설치 하는 방법을 알아보고, 정상적으로 설치가 되었는지 확인하는 방법을 알아보겠습니다. 2021년 10월 기준 MySQL

hongong.hanbit.co.kr

해당 블로그를 참고하여 MySQL을 다운로드 받아줍니다.

 

이 블로그에 나와있는 대로 하려고 했는데, Installer가 많이 바꼈네요.

 

그냥 다 Next 눌러주니까 일단 깔렸습니다.

 

Connections가 3개 보이는데, 왜 옛날에 썼던게 아직도 남아있는지 모르겠네요. 일단 root에 들어갑니다

 

 

CREATE DATABASE mydb;
CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'dbpass';
GRANT ALL PRIVILEGES ON mydb.* TO 'dbuser'@'localhost';

이렇게 입력을 해주면 DB와 유저, 그리고 패스워드가 생성됩니다.

자 이제 mydb가 만들어졌으니 스프링과 연동을 해보도록 하겠습니다.

 

스프링과 연동하기 위해서 jdbc와 mysql dependency를 추가해주어야 할 것 같네요

 

8.0.33 버전이니 mvnrepository 에서 8.0.33 mysql과 springboot starter jdbc를 넣어주도록 하겠습니다.

 

pom.xml에 필요한 것들을 다 넣어주고 이제 applicaton.property에 들어가서

 

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=dbuser
spring.datasource.password=dbpass

# JPA 설정
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

해당 설정을 넣어줍니다. 이렇게 하면 이제 DB연동이 완료되었습니다.

 

User클래스를 하나 만들어서 테스트를 해보도록 하겠습니다.

 

User클래스를 이렇게 만들어줍니다

 

import javax.persistence.*;

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "name", nullable = false, length = 100)
    private String name;

    @Column(name = "email", unique = true)
    private String email;

    @Transient
    private String password;

    // getters and setters
}

어노테이션에 대한 설명은 다음에 하기로 하고 일단 mysql과 잘 연동이 되었는지 확인하기 위해 빠르게 만들어주도록 하겠습니다.

 

이렇게 만들고 에러가 나지 않는걸 확인한 뒤 Repository도 만들어줍시다.

 

package com.example.demo.repository;

import org.springframework.data.jpa.repository.JpaRepository;

import com.example.demo.Entity.User;

public interface UserRepository extends JpaRepository<User, Long> {
}

자 이제 Repository도 잘 완성이 되었으니 스프링부트 애플리케이션을 실행해보도록 하겠습니다.

 

Hibernate가 쿼리문을 수행해주는 것을 확인해 볼 수가 있습니다.

 

 

ID와 EMAIL, NAME 값까지 잘 들어가는것을 확인해줍니다.

 

PASSWORD는 Transient 어노테이션이 붙어있기 때문에 데이터베이스에 매핑되지 않습니다.

 

안 나온다고 당황하지 마세요.

 

자, 정말 간단한 작업으로 스프링 부트 애플리케이션을 동작시키고 DB와 연동시켜보았습니다.

 

스프링을 할 때도 Spring Legacy Project를 이용해서 귀찮은 작업들을 한번에 해주는게 간단하다 생각했는데

 

Spring Boot Starter를 이용하니 그것보다 훨씬 쉽고 간단하게 DB연동까지 마쳤습니다.

 

이정도면 거의 Django와 비슷한 수준의 간단함이 아닌가 싶어집니다.

 

 

+ Recent posts