스프링 부트 기초 - 4

2 minute read

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 를 했더니 성공적으로 생성이 되었다.

3.png

2.png


깃허브와 프로젝트 연결

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

4.png

▶ 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 파일을 찾는데 도움을 줌

테이블이 생성 된다면 아래와 같이 콘솔창에 출력된다

5.png


pom.xml

<!-- JSP 템플릿 엔진 -->
<dependency>
	<groupId>org.apache.tomcat.embed</groupId>
	<artifactId>tomcat-embed-jasper</artifactId>
</dependency>

스프링 부트는 jsp를 인식하지 못하기 때문에 pom.xml에 의존 추가해야 한다

📑 출처

Categories:

Updated:

Leave a comment