본 글은 마리아 디비가 설치되어 있다는 가정하에 시작합니다. brew가 설치되어있는 사용자는 아래의 명령어를 입력하고, 아닌 사람은 검색을 통해 설치해주세요
brew install mariadb
1. Spring 프로젝트 생성
본 게시글에서는 intellij의 spring initializr 플러그인을 활용할 것이다. 만약 없다면 아래의 사이트를 대신 이용하자.
group, projct Name을 설정해주고, opnJDK 11를 선택후 Next를 눌러준다.
이후 Spring Boot DevTools, Lombok, Spring Web, Spring Data JPA, MariaDB Driver
이렇게 5가지의 dependency들을 추가해후 create를 눌러준다.
생성 후 완전히 환경셋팅이 완료되기까지 오래걸리기 때문에 그사이에 디비를 설정해주도록 하자.
2. 마리아 디비 실행 및 연동할 데이터베이스 생성
> mysql
우선 터미널을 열고 위의 명령어를 입력하면 mariaDB가 실행된다.
그다음 show databases;를 입력하여 존재하는 디비들을 확인할 수 있다.
이때 테스트를 위해 이름이 겹치지 않는 적절한 db를 만들어준후 종료하도록 하자
이후, use명령어를 통해 사용할 디비에 접속하면된다.
MariaDB [(none)]> show Databases;
MariaDB [(none)]> create database [원하는 디비 이름];
MariaDB [(none)]> show Databases;
MariaDB [(none)]> use [원하는 디비 이름];
3. application.properties파일에 값 삽입
다시 intellij로 돌아와 application.properties파일에 아래 코드를 입력해준다.
이때 / 뒤에는 아까 생성한 디비이름을 넣어준다
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/[원하는 디비 이름]
spring.datasource.username=root
spring.datasource.password=[password 값]
이때 root 계정에 패스워드 값을 입력해주는데, 잘 모르겠다면 root 계정 패스워드 변경을 하여 입력해주자
4. 테스트 코드 작성
이제 test 를 위한 entity와 repository 를 만들어보자.
아래와 같은 코드를 두개 작성해준다
1. Info.class 파일
@Entity
@Getter @Setter
public class Info {
@Id @GeneratedValue
private Long id;
private String text;
}
2. InfoRepository.class 파일
@Repository
public class InfoRepository {
@PersistenceContext
private EntityManager em;
public Long save(Info info){
em.persist(info);
return info.getId();
}
public Info find(Long id){
return em.find(Info.class,id);
}
}
이후 아래와 같은 테스트 코드를 작성해주고 실행하자
3. DbtestApplicationTests.class 파일
@RunWith(SpringRunner.class)
@SpringBootTest
@Rollback(value = false)
class DbtestApplicationTests {
@Autowired
InfoRepository infoRepository;
@Test
@Transactional
void contextLoads() throws Exception {
Info info = new Info();
info.setText("test1");
Long saveId = infoRepository.save(info);
Info findInfo = infoRepository.find(saveId);
Assertions.assertThat(findInfo.getId()).isEqualTo(info.getId());
Assertions.assertThat(findInfo.getText()).isEqualTo(info.getText());
}
}
전체 파일의 위치는 다음 사진에서 확인할 수 있다.
5. DB에서 조회하자
MariaDB [디비 이름]> show tables;
MariaDB [디비 이름]> select * from info;
이제 터미널 창으로 돌아와서 아까만든 디비의 테이블을 확인한다.
잘 들어간 모습을 확인할 수 있다.
'Programming > Spring' 카테고리의 다른 글
[Spring/Java/Jackson] JSON List를 문자열(String)으로 변환 (0) | 2022.07.31 |
---|---|
[spring/java] JSON 안의 JSON 리스트 객체로 파싱받기 (0) | 2022.07.31 |
[Spring/스프링] 롤링페이퍼(게시판) 프로젝트 2. Repository 생성 (0) | 2022.03.23 |
[Spring/스프링] 롤링페이퍼(게시판) 프로젝트 1. Entity 생성 (0) | 2022.03.22 |
[Spring/스프링] 롤링페이퍼(게시판) 프로젝트 0. 프로젝트 설명 (0) | 2022.03.22 |