스프링(Spring)/스프링부트(SpringBoot)
[SpringBoot] SpringBoot + MySQL + JPA과 연동하기 + 테스트
2022. 1. 8. 21:37반응형
개요
- SpringBoot에 MySQL을 연동해본다.
- SpringBoot에 JPA를 연동해본다.
- MySQL과 JPA를 연동 후, 테스트 오브젝트인 Memo 객체를 만들어서, SpringBoot를 실행한다.
- (확인포인트) 실행 후에, 정상적으로 설정된 MySQL DB에 Memo 테이블이 생성이 되어있는지 확인한다.
- (사전사항) MySQL이 설치가 되어있어야 함. (MySQL에서 Database는 만들어져있는 상태여야 함)
수정사항
- dependency 추가
dependencies {
implementation 'mysql:mysql-connector-java'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
}
[PROJECT]/build.gradle
(추가된부분) 참고
plugins {
id 'org.springframework.boot' version '2.6.2'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'mysql:mysql-connector-java' // (추가된부분)
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // (추가된부분)
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
- application.properties 변경
# MySQL 설정
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# DB Source URL 설정
# 예시) spring.datasource.url=jdbc:mysql://localhost:3306/test_db?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul
spring.datasource.url=jdbc:mysql://<IP>:<PORT>/<DB NAME>?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul
# DB 사용자 이름 설정
# 예시) spring.datasource.username=root
spring.datasource.username=<MySQL ID>
# DB 사용자이름에 대한 암호 설정
# 예시) spring.datasource.password=root
spring.datasource.password=<MySQL PASSWORD>
# true 설정 시, JPA 쿼리문 확인 가능
spring.jpa.show-sql=true
# DDL(create, alter, drop) 정의 시, DB의 고유 기능을 사용할 수 있음.
spring.jpa.hibernate.ddl-auto=update
# JPA의 구현체인 Hibernate가 동작하면서, 발생한 SQL의 가독성을 높여줌.
spring.jpa.properties.hibernate.format_sql=true
- SpringJpaApplication.java (main/java/com.example.spring_jpa/SpringJpaApplication, 메인 애플리케이션)
@RestController
@SpringBootApplication
public class SpringJpaApplication {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(SpringJpaApplication.class, args);
}
}
- Memo.java (main/java/com.example.spring_jpa/Memo.java)
@Entity
@Table(name = "tbl_memo")
public class Memo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(length = 200, nullable = false)
private String memoTextselet;
}
@Table : 원하는 테이블 명을 입력해준다. 그래야, 해당 테이블로 객체가 생성되기 때문이다.
결과화면
테이블이 잘 생성된 걸 확인할 수 있다.
1. 아래의 명령어로 접속.
# mysql -u root -p
2. 데이터베이스 선택
mysql> use test_db
3. 테이블 확인
mysql> show tables;
이로써, SpringBoot, MySQL, JPA 셋을 연동하여, 테이블 생성까지 완료하였다.
반응형
'스프링(Spring) > 스프링부트(SpringBoot)' 카테고리의 다른 글
[스프링부트(SpringBoot)] 리스트로 홈페이지에 넘겨주기 (0) | 2024.07.13 |
---|---|
[SpringBoot] SpringBoot로 클라이언트에게 html파일 보내기 (0) | 2022.01.08 |
[SpringBoot] 스프링부트에서 재시작 없이 정적소스 변경 적용하기 (0) | 2021.12.03 |
[SpringBoot] Spring 프로젝트에서 Thymeleaf 설정하는 방법 + CSS도 설정하는 방법 (0) | 2021.12.02 |
Spring Property 목록 (0) | 2021.03.09 |