Spring boot 와 MySQL workbench 연결해보기

이진우·2023년 7월 1일
0

스프링 학습

목록 보기
1/46

인강을 듣다 H2 데이터베이스 대신 MySQL 로 데이터베이스를 옮겨 보고 싶었다.

스프링 부트 설정 부터 시작해보겠다!

1)Spring Initializr 에서 H2 DataBase 대신에 MySQL 를 대신 선택한다.

만들어 주고 ~

2)MySQL Work Bench에 접속한다.

그 후 connection Name 에 일단 아무거나 입력하구

HostName 에는 localhost

Username에는 root

비밀번호는 초기에 mysql설치시 설정했던 비밀번호를 입력한후

testconnection 을 눌러주면 성공적으로 연결이 된다.

3)MySQL SCHEMAS 창에서 마우스 우클릭

create SCHEMA

이름 입력

apply 눌러준다!

잘 생성 된걸 볼 수 있다.

4)IntelliJ 를 실행한다.

실행해서 아까 다운로드된 파일을 열어서 build.grade 에서

runtimeOnly 'org'mysql:mysql-connector-j'를 확인한다.

여기서 주의점이 버젼에 따라서 여기다가 입력되는 값이 항상 달랐다. 끝이 java 인 경우도 있었으나 나의 버젼에는 맞지 않았나 보다.

5)application properties 에서 설정 정보 입력해주기!

이대로 똑같이 입력한다.

위에서 jpa_1부분에는 db를 ,username 에는 root 를 ,password 에는 아까 입력한 mysql 설치 당시에 입력했던 비밀번호를 입력한다.

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver -->>역시 사람 마다 입력하는게 달랐어서 구글링 하는게 매우 힘들었다.

복사용으로

spring.datasource.url=jdbc:mysql://localhost:3306/shopdb?useSSL=false&serverTimezone=Asia/Seoul
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=12345678

spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.format_sql=true;

넣어드렸습니당!

그러면 오류없이

서버가 도는 것 확인 할 수 있습니다!

테스트 케이스 와 class 를 작성해보겠습니다!
MemberClass

package jpabook.jpashop.domain;

import lombok.Getter;
import lombok.Setter;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
@Getter
@Setter
public class Member {
    @Id @GeneratedValue
    private Long id;
    private String username;
}

MemberRepositoryClass

import org.springframework.stereotype.Repository;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Repository
public class MemberRepository {
    @PersistenceContext
    EntityManager em;

    public Long save(Member member){
        em.persist(member);
        return member.getId();
    }
    public Member find(Long id){
        return em.find(Member.class,id);
    }
}

테스트

import jpabook.jpashop.domain.Member;
import jpabook.jpashop.repository.MemberRepository;
import org.assertj.core.api.Assertions;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;

@RunWith(SpringRunner.class)
@SpringBootTest
public class MemberRepositoryTest {
   @Autowired
   MemberRepository memberRepository;
   @Test
   @Transactional
   @Rollback(false)
   public void testMember(){
       Member member=new Member();
       member.setUsername("memberA");
       Long saveId= memberRepository.save(member);
       Member findMember=memberRepository.find(saveId);
       Assertions.assertThat(findMember.getId()).isEqualTo(member.getId());
       Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername());
       Assertions.assertThat(findMember).isEqualTo(member);
   }
}


이렇게 MySQL WorkBench에 1 과 memberA 가 들어와 있는 모습을 볼 수 있습니다.

profile
기록을 통해 실력을 쌓아가자

0개의 댓글