본문 바로가기

개발/백엔드

spring boot - 데이터베이스 연결

백엔드에서는 데이터베이스에 있는 정보를 읽은 다음 적절한 정보들을 넘겨줍니다. 데이터베이스에 연결하는 법을 배워봅시다.

우선 데이터베이스를 세팅합니다(https://codestudycafe.tistory.com/99). 저는 mysql과 workbench를 사용할 것입니다.

 

데이터베이스

우선 데이터베이스를 설정합니다. id, name, password를 만들어 줍니다.

PK는 primary key, NN은 not null, AI는 auto increase입니다.

 

오른쪽 아래 apply를 눌러 적용할 수 있습니다.

spring boot

 

resource 잍에 있는 application에 다음 정보를 넣습니다. ~~.yaml이 아니면 yaml으로 고쳐줍니다. 세팅한 값마다 다르니 각각이 어떤 의미인지 간단하게만 살펴봅시다.

 

show-sql : sql 문이 실행되면 해당 구문을 보여줍니다. 디버깅에 도움됩니다.

format_sql : 출력되는 sql문을 읽기 쉽게 포맷팅 해 줍니다.

dialect : 다양한 데이터베이스(mysql, oracle, ms-sql 등)가 있는데 어떤것을 쓸지 지정해 줍니다.

ddl-auto : 데이터베이스와 엔티티가 잘 매칭되는지 확인합니다. validate경우 매칭이 안되면 실행이 안됩니다.

url : 데이터베이스와 연결할 url을 적습니다. localhost:3306 뒤에 접속할 데이터베이스(streak)을 적어줍니다. 쿼리 파라미터로 세팅을 할 수 있습니다.

  • useSSL=false: SSL을 사용하지 않도록 설정합니다.
  • useUnicode=true: 유니코드 지원을 활성화하여 다양한 문자 인코딩을 처리할 수 있게 합니다.
  • allowPublicKeyRetrieval=true: MySQL 서버에서 Public Key Retrieval을 허용하여, MySQL 서버에 처음 연결할 때 암호화된 비밀번호 전송을 가능하게 합니다.

driver-class-name : JDBC 드라이버의 클래스 이름을 지정합니다.

username, password : 접속할 계정의 아이디, 비번입니다. 처음 mysql 세팅할 때 설정해 주었습니다.

 

spring boot 엔티티 작성

user 패키지를 만들고 안에 controller, db를 만듭니다. db에는 데이터베이스의 엔티티가 들어가고 controller에는 api가 들어갑니다.

 

controller는 건드리지 않고 db만 만들겠습니다.

@JsonNaming : 클래스의 이름을 snake_case(user_id)로 해석합니다. 저는 java에서는 camelCase(userId), db에서는 snake_case를 사용할 것입니다.

@Entity(name="user") : 데이터베이스의 어떤 엔티티에 연결할지 정해줍니다.

@Id : primary key로 쓴다는 것입니다.

@GeneratedValue(strategy = GenerationType.IDENTITY) : 기본 키 값을 auto increase로 생성합니다.

 

 

이제 잘 실행하면 java - database가 잘 연결이 되었다는 뜻입니다.

'개발 > 백엔드' 카테고리의 다른 글

spring boot - db 조회  (0) 2024.09.10
spring boot - filter  (2) 2024.09.08
spring boot - post 전송(with data)  (1) 2024.09.04
spring boot - api 구조  (0) 2024.08.29
spring boot - 시작  (0) 2024.08.25