문제점 : 코드를 올바르게 작성한 것같은데 데이터베이스(mariaDB)와 연동이 안된다!!
기존 작성 코드 :
@Getter // 클래스 내의 모든 필드에 대해 Getter메서드를 자동으로 생성 / 읽기 전용 필드를 가진 클래스에 유용
@Setter // 클래스 내의 모든 필드에 대해 Setter메서드를 자동으로 생성 / 모든 필드에 Setter를 생성하면 해당 클래스의 불변성이 깨질 수 있으니 필요한 경우에만 사용
@NoArgsConstructor // 매개변수가 없는 기본 생성자를 자동으로 생성 / 클래스를 생성할 때 매개변수가 없는 생성자를 호출할 수 있음
@AllArgsConstructor // 클래스 내의 모든 필드를 매개변수로 받는 생성자를 자동으로 생성 / 모든 필드를 초기화하는 편리함을 줄 수 있음
@ToString // 클래스의 모든 필드에 대한 toString() 메서드를 자동으로 생성
// 회원정보에 필요한 내용들을 필드로 정리 필드에 대해서 private으로 저장
// DTO와 save.html에 name이 일치한다면 알아서 값을 담아줌
public class MemberDTO {
private Long id;
private String memberEmail;
private String memberPassword;
private String memberName;
}
server:
port: 8081
spring:
datasource:
url: jdbc:mariadb://localhost:3306/academy
username:
password:
jpa:
database-platform: org.hibernate.dialect.MariaDBDialect
open-in-view: false
show-sql: true
hibernate:
ddl-auto: create
쿼리문 :
use academy;
create table test(
coll varchar(10));
select * from test;
select * from member_table;
실행 시
0 | 16 | 17:18:22 | select * from member_table LIMIT 0, 1000 | Error Code: 1146. Table 'academy.member_table' doesn't exist | 0.000 sec |
에러가 발생하며 member_table 이 생성이 되지 않는다.
없으면 만들라고 해놨는데 왜 안되는가.......
해결방법 :
server:
port: 8081
spring:
datasource:
url: jdbc:mariadb://localhost:3306/academy
username:
password:
jpa:
database-platform: org.hibernate.dialect.MariaDBDialect
open-in-view: false
show-sql: true
hibernate:
ddl-auto: create
username, password, jpa 등은 모두 spring.datasource의 하위 속성이어야 하므로
password: 다음줄에 오는 jpa를 띄우지 말고 붙여 써야한다..
3 | 17 | 17:20:44 | select * from member_table LIMIT 0, 1000 | 0 row(s) returned | 0.000 sec / 0.000 sec |
생성 완료...
멍충한 나 처럼 2시간씩 고생하지 말기를..
Spring이 제공하는 Validation이란? (1) | 2023.12.06 |
---|---|
인텔리J mariaDB연동 (0) | 2023.11.14 |
인증(Authentication), 인가(Authorization) 차이 (0) | 2023.11.09 |
IoC Container와 Bean (0) | 2023.11.09 |
다형성이란? (0) | 2023.11.08 |