개발

springboot + jpa + mysql

yjs3819 2021. 7. 19. 16:36
728x90

spring boot에서 mysql을 이용해서 spring data jpa를 사용해보자아아

dependencies

롬복없인 못살아..

application.yml

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:(포트번호)/(DB이름)?serverTimezone=Asia/Seoul
    username: (사용자이름)
    password: (사용자비밀번호)
  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
        format_sql: true

logging.level:
  org.hibernate.SQL: debug

mysql의 url이라던가 username, password에 대한 정보는 mysql workbench의 manage server connection에서 확인할수있다아아

hibernate옵션으로 ddl-auto: 를하여 spring 뜰때, 해당 엔티티와 매핑되는 테이블 drop하고 다시 create합니당!

spring 띄우기!

package mysql1.test;

import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;

@Entity
@Getter @Setter
@Table(name = "MEM")
public class Member {
    @Id @GeneratedValue
    @Column(name = "MEMBER_ID")
    private Long id;

    private String name;
}

요 엔티티는 MEM이라는 테이블과 매핑됩니다! 그러면 ddl-auto로 create옵션을 걸어놨으니 스프링 뜰때, 해당 테이블이 존재하겠져?

잘존재하네요!

test로 테이블에 데이터 삽입하기!

@SpringBootTest
@Transactional
@Rollback(value = false)
class MemberRepositoryTest {
    @Autowired
    MemberRepository memberRepository;

    @Test
    void 회원등록(){
        Member member = new Member();
        member.setName("회원1");

        memberRepository.save(member);
        Member resultMember = memberRepository.findOne(member.getId());

        Assertions.assertThat(resultMember).isEqualTo(member);
    }
}

테스트를 돌려보면(롤백 false로해서 테스트 코드여도 트랜잭션이 커밋됩니당!)

데이터가 잘 삽입되었네요!!!

끄읏

728x90