Junjangsee's Blog

SpringBoot - PostgreSQL

2019-05-13

images

PostgreSQL

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


PostgreSQL 의존성 추가

1
2
3
4
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>

MySQL 의존성을 추가해줍니다.


Docker에 PostgreSQL 설치하기

1
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 설정

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


Container에 bash 접근하기

1
docker exec -i -t postgres_boot bash

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

User 및 DB 연결하기

1
psql -U junjang springboot

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

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

1
2
su - postgres
psql springboot

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

명령어

데이터베이스 조회

1
\list or \l

전체 테이블 조회

1
\dt

PostgreSQL 접속 끊기

1
\q

account 테이블 조회

1
SELET * FROM account;

MySQL



PostgreSQL Runner 클래스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@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 우측에 추가된 것을 확인할 수 있고 테이블을 볼 수 있으며 직접 쿼리를 작성해 값을 출력할 수도 있습니다.