ABOUT ME

-

오늘
-
어제
-
-
  • SpringBoot - PostgreSQL
    Back-end/Spring 2020. 6. 27. 23:59

    PostgreSQL

    Postgres DB를 사용하는 방법을 알아봅시다.
    MySQL과 마찬가지로 Docker로 설치 및 실행할 예정이니 Docker를 설치 하지 않았다면 Mysql 포스팅을 참고해주시기 바랍니다.

    PostgreSQL 의존성 추가

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

     

    MySQL

    의존성을 추가해줍니다.

    Docker에 PostgreSQL 설치하기

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

     

    MySQL
    • 도커 5432 포트를 로컬 5432 포트와 연결합니다.
    • 비밀번호는 pass로 합니다.
    • 사용자는 junjang으로 합니다.
    • DB는 springboot를 사용합니다.
    • 다운로드 파일은 postgres_boot로 합니다.
    • postgres를 다운로드 받는다.

    이 순서로 이해하시면 됩니다.

    PostgreSQL 연결

    application.properties 설정

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

    Container에 bash 접근하기

    docker exec -i -t postgres_boot bash

    위 명령어로 bash를 사용하여 postgres를 사용할 수 있도록 합니다.

    User 및 DB 연결하기

    psql -U junjang springboot

     

    MySQL

    최초 설치시 만들었던 username과 DB를 선언하여 연결합니다.

    이 방법이 되지 않는다면 username -> DB 순으로 연결하여야 합니다.

    su - postgres
    psql springboot

    위 명령어를 순차적으로 사용하여 접속합니다.

    명령어

    데이터베이스 조회

    \list or \l

    전체 테이블 조회

    \dt

    PostgreSQL 접속 끊기

    \q

    account 테이블 조회

    SELET * FROM account;

     

    MySQL

    PostgreSQL Runner 클래스

    @Component
    public class PgSQLRunner implements ApplicationRunner {
    
        @Autowired
        DataSource dataSource;
    
        @Autowired
        JdbcTemplate jdbcTemplate;
    
        @Override
        public void run(ApplicationArguments args) throws Exception {
            try (Connection connection = dataSource.getConnection()) {
                System.out.println(connection.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, 'junjang')");
    
        }
    }

    테이블을 생성하고 INSERT하는 쿼리를 만드는 클래스를 구현하고 실행합니다.
    이 클래스를 이해하지 못하신다면 Mysql 포스팅을 참고해주시기 바랍니다.

    MySQL

    MySQL

    테이블과 SELECT문을 통해 값이 들어간 것을 확인할 수 있습니다.

    IntelliJ Database

    IntelliJ 는 툴 내에서 DB를 관리할 수 있습니다.

    MySQL

    우측 Database에 PostgreSQL을 클릭합니다.

    MySQL

    User, Password, Database를 입력하고 Test를 시행하고 이상이 없다면 OK를 클릭하여 추가합니다.

    MySQL

    우측에 추가된 것을 확인할 수 있고 테이블을 볼 수 있으며 직접 쿼리를 작성해 값을 출력할 수도 있습니다.

    'Back-end > Spring' 카테고리의 다른 글

    SpringBoot - JPA 연동하기  (0) 2020.06.28
    SpringBoot - ORM, JPA의 개념  (0) 2020.06.28
    SpringBoot - DBCP, MySQL  (0) 2020.06.27
    SpringBoot - 인메모리 데이터베이스(H2)  (0) 2020.06.27
    SpringBoot - MVC CORS  (0) 2020.06.27

    댓글