내가 까먹을까봐 올림
application.yml이나 application.properties 파일에
(+ 내가 예전에 구글링하다 yml 보고 이거 뭐야? 했어서 설명 추가함.
이런 거 엄청 간단해서 다들 알 것 같지만,
나같이 주입식 단기 국비교육받은 사람들은 모를 수도 있음.
거기선 이유 안 알려주고 걍 하라고 함.
걍 properties 파일에서 양식만 바꾼 게 yml 파일입니다.
예를 들어,
properties 파일에선
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
이었던 게,
yml 파일에선
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
이런 식입니다.
들여 쓰기 중요해요!!!)
암튼
application.yml 파일에
spring:
datasource:
url: jdbc:mysql://localhost:3306/본인이 만든 스키마 이름
username: 본인 username
password: 본인 password
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
database: mysql
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
hibernate:
ddl-auto: create
properties:
hibernate:
# show_sql: true
format_sql: true
default_batch_fetch_size: 100
thymeleaf:
prefix: classpath:/templates/
suffix: .html
logging:
level:
org.hibernate.SQL: debug
# org.hibernate.type: trace
이거 추가하면 연동됩니다.
username이랑 password는
본인이 MySQL에서 설정한 대로 해야 합니다.
저도 지금 공부 중이라 한줄한줄 알게 되면 그때그때 추가할게요.
엄청 기본 중의 기본 말씀 드리면...
MySQL 스키마 만든 거에서 Set as Default Schema 하셔야 하는 거 잊지 마세요!
지금 이 글 읽을 정도면 아마 초보이거나... 하실 텐데 은근 이거 많이 까먹습니다.
(내가 연습한다고 스키마 엄청 만들어댔다가 까먹은 경험 다수ㅋ)
그리고 jpa에서 ddl-auto: create는 서버 재시작할 때마다
데이터베이스 테이블 다 drop 시키고 다시 싹 새로 만드는 겁니다.
그거 싫으시면 아마 create를 none으로 바꾸면 될 거예요.
안 되면 구글링 하시면 많이 나올 겁니다.
thymeleaf는 view페이지예요.
jsp는
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
이렇게 설정하면 됩니다.
(근데 이건 또 properties 양식ㅋ;;)
view 페이지 당장 안 할 거면, thymeleaf 부분 다 빼도 됩니다.
아 그리고 bulid.gradle에 dependencies {} 안에
implementation 'mysql:mysql-connector-java'
이거 있어야 합니다.
pom.xml 기준으로는 <dependencies></dependencies> 안에
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
아마 이거 있어야 할 겁니다?
(마찬가지로 안 되면 구글링)
application.yml이나 application.properties에 thymeleaf나 jsp 설정 넣으실 거면,
build.gradle(Gradle)이나 pom.xml(Maven)에 관련된 설정 추가 하셔야 합니다.
그리고 혹시 연결된 거 바로 확인해보고 싶다면,
Member.java 파일 하나 만들어서
import lombok.Getter;
import lombok.Setter;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
@Getter
@Setter
public class Member {
@Id
@GeneratedValue
@Column(name = "member_id")
private Long id;
private String password;
private String name;
private int age;
}
이거 테스트용으로 MySQL에 들어가지나 보면 됩니다.
MySQL에 Member 테이블 생성되면 연동된 겁니다.
아 그리고 @Getter랑 @Setter는 lombok이라는 건데,
이것도 build.gradle(Gradle)이나 pom.xml(Maven)에 관련된 설정 추가 하셔야 합니다.
만약에 없으면 그냥 Getter랑 Setter 넣으시면 돼요.
아마 저건 테스트용이라 굳이 필요 없을 것 같긴 하네요!
- 내가 삽질한 경험으로 올려보는 포스팅 끝 -
'에러' 카테고리의 다른 글
[에러] cannot construct instance of `...` & resolved [java.lang.nullpointerexception] (0) | 2023.01.17 |
---|---|
[에러] 회원 가입 & 로그인 에러 처리에 대한 고찰 (0) | 2023.01.17 |
[SpringBoot 에러] (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) (0) | 2023.01.08 |
git commit 삭제 (0) | 2023.01.04 |
LeetHub 빨간체크 연동 에러 이슈 (0) | 2022.12.19 |