스프링 부트 기초 - 4
MySql 에러 (데이터베이스 생성 오류)
CREATE DATABASE blog;
DROP DATABASE blog;
위 대로 CREATE DATABASE blog를 MySql에 입력하였는데 Error Code 1007
이라고 뜨면서 에러가 났다.
자세히 읽어보니 “database exists” 라고 써있는 걸 확인 할 수 있다. MySQL이 설치되어 있는 폴더에 가서 blog가 존재하는 것을 확인하고 blog 폴더를 지웠다.
그 후 CREATE DATABASE blog 실행 시 Error Code 3679
가 발생하였다. “does not exists” 를 확인하고 다시 설치 경로에 blog라는 빈 폴더를 만든 다음 DROP DATABASE blog → CREATE DATABASE blog 를 했더니 성공적으로 생성이 되었다.
깃허브와 프로젝트 연결
1. git init // 깃 저장소 생성(깃으로 활용하겠다 선언)
2. git add . // 모든 파일 활용하겠다
3. git commit -m "custom setting complete" // 커밋 메세지 남기기
4. git remote add origin "깃허브 레파지토리 주소" // 깃허브와 프로젝트 연결
5. git push origin master // 깃허브에 push 하기
@Builder
@Builder는 Lombok에서 제공하는 어노테이션 중 하나이다.
클래스 레벨에 붙이거나 생성자에 붙여주면 파라미터를 활용하여 빌더 패턴을 자동으로 생성해준다.
▶ MemberController
@Data
@NoArgsConstructor
public class Member {
private int id;
private String username;
private String password;
private String email;
@Builder
public Member(int id, String username, String password, String email) {
super();
this.id = id;
this.username = username;
this.password = password;
this.email = email;
}
}
▶HttpControllerTest
@GetMapping("/http/lombok")
public String lombokTest() {
// 객체 생성시 생성자를 활용 할 때 builder를 사용함 (순서 상관없음)
Member m = Member.builder().username("sarr").email("asdasd").password("12321").build();
System.out.println(TAG + "gettrer" + m.getUsername());
m.getUsername("pass");
System.out.println(TAG + "gettrer" + m.getUsername());
return "lombok test 완료";
}
- builder를 사용하여 객체 생성
- builder를 사용할 시 생성자 순서는 상관없다.
- 불필요한 생성자를 만들 필요가 없다
SpringBoot로 MySQL 테이블 생성
▶ User
▶ application.yml
server:
port: 8088
servelt:
context-path: /blog # localhost:8088/blog 로 시작하게 설정
spring:
mvc:
view:
prefix: /WEB-INF/views/ # 파일명 앞에 붙어줌
suffix: .jsp # 파일명 뒤에 붙여줌
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Seoul
username: cos
password: cos1234
jpa:
open-in-view: true
hibernate:
ddl-auto: create # update, none, create(테이블 생성)
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
use-new-id-generator-mappings: false # false는 jpa가 사용하는 기본 넘버링을 따라가지 않겠다
show-sql: true # 콘솔창에 테이블이 생성되거나 변화되는 걸 보여줌
properties:
hibernate.format_sql: true # 한줄로 나오는 show-sql을 테이블 생성 형식으로 보여줌
jackson:
serialization:
fail-on-empty-beans: false
http:
encoding:
charset: UTF-8
enabled: true
forece: true
- key와 value 작성시 “ : “ 뒤에 한칸을 띄워야 함
- 들여쓰기는 2칸씩 띄워야 함
- context-path : localhost:8088/blog 로 시작하게 설정
- prefix, suffix를 활용해서 jsp 파일을 찾는데 도움을 줌
테이블이 생성 된다면 아래와 같이 콘솔창에 출력된다
pom.xml
<!-- JSP 템플릿 엔진 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
스프링 부트는 jsp를 인식하지 못하기 때문에 pom.xml에 의존 추가해야 한다
Leave a comment