개발강의정리/Spring

[스프링 부트 개념과 활용] 4-10. 스프링 데이터 4부: PostgreSQL 설정하기

nineDeveloper 2019. 11. 19.
728x90

스프링 부트 개념과 활용

4. 스프링 부트 활용

포스팅 참조 정보

GitHub

공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다

해당 포스팅에 대한 내용의 GitHub 주소

실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다

https://github.com/freespringlecture/springboot-concept-uses/tree/chap04-10-04-data-postgresql

 

freespringlecture/springboot-concept-uses

백기선님의 스프링 부트 개념과 활용 강의 내용 정리. Contribute to freespringlecture/springboot-concept-uses development by creating an account on GitHub.

github.com

해당 포스팅 참고 인프런 강의

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

 

스프링 부트 개념과 활용 - 인프런

스프링 부트의 원리 및 여러 기능을 코딩을 통해 쉽게 이해하고 보다 적극적으로 사용할 수 있는 방법을 학습합니다. 중급 프레임워크 및 라이브러리 Spring Spring Boot 온라인 강의

www.inflearn.com

실습 환경

  • Java Version: Java 11
  • SpringBoot Version: 2.1.2.RELEASE

10. 스프링 데이터 4부: PostgreSQL 설정하기

PostgreSQL 의존성 추가

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
</dependency>

Docker 설치

https://docs.docker.com/docker-for-mac/install/

 

Install Docker Desktop on Mac

To download Docker Desktop, go to Docker Hub and sign in with your Docker ID. Download from Docker Hub What to know before you install README FIRST for Docker Toolbox...

docs.docker.com

설치 후 docker logout

docker logout

docker run hello-world

PostgreSQL 설치

Docker로 PostgreSQL 설치

docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=freelife -e POSTGRES_DB=springboot --name postgres_boot -d postgres

Docker container 중지

docker stop postgres_boot

Docker container 삭제

docker rm postgres_boot

Docker 프로세스 확인

docker ps

Docker PostgreSQL container 접근

docker exec -i -t postgres_boot bash

Docker container 프로세스 확인

ps aux | grep postgres

User postgres로 전환

su - postgres

PostgreSQL 접속

psql -U freelife  

데이터베이스 조회

\list or \l

테이블 조회

\dt

PostgreSQL 접속 끊기

\q

account 테이블 조회

SELET * FROM account;

테스트 코드

application.properties 작성

spring.datasource.url=jdbc:postgresql://localhost:5432/springboot
spring.datasource.username=freelife
spring.datasource.password=pass

PostgreSQL Runner 작성

PostgreSQL에서는 USER가 예약어이므로 account로 테이블명 교체

@Component
public class PostgreSQLRunner implements ApplicationRunner {

    @Autowired
    DataSource dataSource;

    @Autowired
    JdbcTemplate jdbcTemplate;

    @Override
    public void run(ApplicationArguments args) throws Exception {
        // Java8에서 지원하는 try문 connection 이라는 resource를 block 안에서 사용하고 무슨 문제가 생기든 정리를 해줌
        try(Connection connection = dataSource.getConnection()) {
            System.out.println(dataSource.getClass());
            System.out.println(connection.getMetaData().getURL());
            System.out.println(connection.getMetaData().getUserName());

            Statement statement = connection.createStatement();
            String sql = "CREATE TABLE account(ID INTEGER NOT NULL, name VARCHAR(255), PRIMARY KEY (id))";
            statement.executeUpdate(sql);
        }

        jdbcTemplate.execute("INSERT INTO account VALUES(1, 'freelife')");
    }
}

Intellij Database

Intellij Database에서 간편하게 PostgreSQL 조회 가능

728x90

댓글

💲 추천 글