728x90
스프링 부트 개념과 활용
4. 스프링 부트 활용
포스팅 참조 정보
GitHub
공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다
해당 포스팅에 대한 내용의 GitHub 주소
실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다
https://github.com/freespringlecture/springboot-concept-uses/tree/chap04-10-04-data-postgresql
해당 포스팅 참고 인프런 강의
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard
실습 환경
- 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/
설치 후 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
'개발강의정리 > Spring' 카테고리의 다른 글
[스프링 부트 개념과 활용] 4-10. 스프링 데이터 6부: Spring-Data-JPA 연동 (0) | 2019.11.21 |
---|---|
[스프링 부트 개념과 활용] 4-10. 스프링 데이터 5부: 스프링 데이터 JPA 소개 (0) | 2019.11.20 |
[스프링 부트 개념과 활용] 4-10. 스프링 데이터 3부: MySQL (0) | 2019.11.18 |
[스프링 부트 개념과 활용] 4-10. 스프링 데이터 2부: H2(인메모리 데이터베이스) (0) | 2019.11.17 |
[스프링 부트 개념과 활용] 4-10. 스프링 데이터 1부: 소개 (0) | 2019.11.16 |
댓글