[Spring Boot #23] 스프링 부트 PostgreSQL 연동하기
| 스프링 부트 PostgreSQL 연동하기
MySQL 연동하는 법과 유사하므로 다음 글을 참조하시면 좋습니다.
[Spring Framework/Spring boot2] - [Spring Boot #22] 스프링 부트 DBCP 및 MySQL 연동해보기
프로젝트 구조
├── pom.xml
├── spring-boot-tutorial.iml
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── tutorial
│ │ │ └── springboottutorial
│ │ │ ├── PostgreSQLRunner.java
│ │ │ └── SpringBootTutorialApplication.java
│ │ └── resources
│ │ ├── application.properties
│ │ ├── static
│ │ └── templates
의존성 추가
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
</dependencies>
설정 파일
# application.properties
spring.datasource.hikari.maximum-pool-size=4
spring.datasource.url=jdbc:postgresql://localhost:5432/springboot
spring.datasource.username=saelobi
spring.datasource.password=pass
소스 코드
@SpringBootApplication
public class SpringBootTutorialApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootTutorialApplication.class, args);
}
}
@Component
public class PostgreSQLRunner 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);
String URL = connection.getMetaData().getURL();
System.out.println(URL);
String User = connection.getMetaData().getUserName();
System.out.println(User);
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, 'saelobi')");
}
}
| PostgreSQL 도커 띄우기 - 리눅스
docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=saelobi -e POSTGRES_DB=springboot \
--name postgres_boot -e POSTGRES_PASSWORD=pass -d postgres
postgres 이미지를 실행하기 위한 명령어 입니다.
docker exec -i -t postgres_boot bash
실행된 도커의 bash shell에 접속하기 위한 명령어입니다.
su - postgres
psql springboot -U saelobi
postgres로 유저명을 바꾸고 난 후 saelobi 계정으로 docker 커맨드 옵션에 입력했던 springboot DB에 접속할 수 있습니다.
위 소스 코드를 실행하고 나면 다음과 같이 테이블과 한 건의 데이터가 삽입된 것을 알 수 있습니다.
springboot=# \dt
List of relations
Schema | Name | Type | Owner
--------+---------+-------+---------
public | account | table | saelobi
(1 row)
springboot=# select * from account;
id | name
----+---------
1 | saelobi
(1 row)
'Spring Framework > Spring boot #2' 카테고리의 다른 글
[Spring Boot #27] 스프링 부트 레디스(Redis) 연동하기 (0) | 2021.03.25 |
---|---|
[Spring Boot #26] Flyway를 이용한 데이터 마이그레이션 (0) | 2021.03.25 |
[Spring Boot #25] 스프링 부트 데이터베이스 초기화 (0) | 2021.03.25 |
[Spring Boot #24] 스프링 부트 Spring-Data-JPA 연동 (0) | 2021.03.25 |
[Spring Boot #22] 스프링 부트 DBCP 및 MySQL 연동해보기 (0) | 2021.03.25 |
[Spring Boot #21] 스프링 부트가 지원하는 인메모리 데이터베이스 (0) | 2021.03.25 |
[Spring Boot #20] 스프링 부트 CORS (0) | 2021.03.24 |
[Spring Boot #19] 스프링 부트 Spring HATEOAS (0) | 2021.03.24 |