pom.xml 작성하기
프로젝트 생성 직후의 pom.xml 파일의 내용입니다.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>practice</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>bootrestpractice</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
이 pom.xml에 spring-boot-devtools 추가해주세요.
아래 dependency를 복사해서 사용하셔도 됩니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
application.properties 작성하기
프로젝트 생성 직후에는 application.properties는 빈 파일 입니다.
이 application.properties에 아래와 같이 작성해주시면 됩니다.
spring.datasource.url=jdbc:mysql://localhost:3306/bootrest?createDatabaseIfNotExist=true
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.tomcat.max-wait=20000
spring.datasource.tomcat.max-active=50
spring.datasource.tomcat.max-idle=20
spring.datasource.tomcat.min-idle=15
spring.jpa.hibernate.ddl-auto=create
#create, update, delete 등 sql 쿼리 옵션 선택
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDBDialect
#MairaDB다이얼렉트로 테이블 생성 시 에러나니까 바꿔달라고 하는 것
spring.jpa.properties.hibernate.id.new_generator_mappings=false
spring.jpa.properties.hibernate.format_sql=true
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
localhost - 호스트 IP (호스트 서버의 IP를 작성해주면 됩니다)
3360 - MySQL이 사용하는 포트 번호입니다
bootrest?createDatabaseIfNotExist=true - 프로젝트 생성 시 테이블이 없다면 생성해 달라는 표현
username - db 유저 아이디
password - db 유저 비밀번호
tomcat.max-wait - 새로운 연결을 얻기 위해 대기하는 시간(msec), 최대 시간에 도달하게 되면 exception이 발생하며 default는 -1로 무제한이다
tomcat.max-active - 동시 사용 가능한 연결의 최대 수로 0일 경우 무제한이다 (기본값:8)
tomcat.max-idle - 커넥션 풀에 반납할 때 최대로 유지될 수 있는 커넥션 개수 (기본값:8)
tomcat.min-idle - 최소한으로 유지할 커넥션 개수 (기본값:0), max-active를 넘을 수 없다, -1일 경우 무제한이다 (기본값:0)
spring.jpa.hibernate.ddl-auto - 프로젝트가 실행 될 때마다 뒤에 작성된 키워드에 해당하는 쿼리문을 실행하게 된다
create - 응용프로그렘이 실행될 때마다 db 테이블을 drop하고 생성한다
update - 변경된 스키마만 데이터베이스에 적용한다
validate - 변경된 스키마가 있는지 확인만 하고 변경이 있다면 어플리케이션을 종료한다
create-drop - 프로젝트, 어플리케이션 시작과 종료에서 모두 테이블을 drop 한다
none - 데이터베이스에 아무런 변화도 없다
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDBDialect
- Hibernate는 내부적으로 지정되는 DB에 맞게 SQL문을 생성하는 Dialect가 존재합니다.
- 위 명령은 SQL문을 MariaDB에 맞는 SQL문을 생성해 달라고 설정하는 것 입니다.
spring.jpa.properties.hibernate.id.new_generator_mappings
- Hibernate Primary Key(ID) Generator로 JPA에 부합하는 방식으로 DB의 ID생성
- true 면 sequence 시도, 혹은 table로 시도
spring.jpa.properties.hibernate.format_sql
- 사용되는 쿼리문을 보여줄지 결정
- spring.jpa.show_sql 도 동일한 기능
- format_sql을 사용할 경우 SQL을 보여줄 때 줄바꿈을 넣어서 예쁘게 보여준다
- true(쿼리문을 보여주세요), false(쿼리문을 출력X)
- true로 설정하면 1줄 짜리 질의문도 같이 보여지게 된다
logging.level.org.hibernate.SQL
- spring.jpa.properties.hibernate.format_sql을 true로 설정하여 나오는
1줄짜리 질의문을 제어하기 위한 설정입니다.
- DEBUG로 설정을 하면 1줄 짜리 질의문이 안나오고 여러줄로 표시된 질의문만 나오게 해줍니다
logging.level.org.hibernate.type.descriptor.sql.BasicBinder
- prepared statement문 형태의 질의문에 들어가는 파라미터를 보기 위한 설정입니다.
- TRACE로 설정할 경우 로그 형태로 출력이 되며 질의문에 들어가는 파라미터도 볼 수 있습니다
- DEBUG로 설정할 경우 파라미터 로그를 볼 수 없습니다
pom.xml, application.properties의 작성을 완료하시면 톰캣을 추가해주세요~!
톰캣 추가하기
프로젝트 파일 우클릭 -> Build Path -> Configure Build Path
우측에 Add Library 클릭 -> ServerRuntime -> Next(다음)
본인의 프로젝트에 맞는 Apache Tomcat 버전을 클릭후 Finish ->
Java Build Path에 Apache Tomcat 라이브러리가 추가되어 있는 모습을 볼 수 있습니다
-> Apply and Close
프로젝트에 Apache Tomcat 라이브러리가 추가되어 있으면 완료입니다
다음 포스팅 부터는 model, repository, service, exceptoin, controller를 순서대로 생성하고 실행을 시켜보겠습니다
다음으로 고고~ -> https://amy-ming.tistory.com/15
'Programing > JPA' 카테고리의 다른 글
JPA 실습하기 (5) (0) | 2021.06.16 |
---|---|
JPA 실습하기 (4) (0) | 2021.06.15 |
JPA 실습하기 (2) (0) | 2021.06.14 |
JPA 실습하기 (1) (0) | 2021.06.14 |
JPA (0) | 2021.06.14 |