요즘 코드로 배우는 스프링 웹 프로젝트라는 책에서 스프링을 공부하고 있어.본서에서는 oracledatabase에 연동되어 있지만, 나는 개인적인 사정(?)으로 postgreSQL로 연동정보를 바꿔야 하는 상황이 되어버려서, 연동된 내용을 정리해 보려고 한다.내용은 코드로 배우는 스프링 웹 프로젝트를 기반으로 한 (자유롭게 본인이 생성하고 싶은 이름으로 해도 된다!)※ 참고사항으로 저는 아에 프로젝트를 새로 만들고 연동하는 것이 아니라 기존의 오라클에서 이미 연동되었던 프로젝트들을 postsql로 수정하는 과정을 정리하였습니다.
아직 부족한 실력때문에 자세히 설명하지 못할지도 모릅니다.ㅜㅜ 만약 잘못된 부분이나 보완하면 좋은 점을 피드백 편하게 해주세요… 감사합니다…!! 순서 1.post gresql & dbeaver 설치 2.post gresql 데이터베이스 생성 및 dbeaver에 데이터베이스 연동 추가 3. 테이블 생성 및 더미 데이터 담기 4.root-context.xml 연동 정보 수정 5.pom.xml 수정 6.board Mapper)
우선 postgreSQL을 설치한다.저는 postgreSQL14를 설치했습니다.설치할 때 비밀번호는 꼭 기억해야 한다!!!! 만약 포트번호도 수정하면 기억해야 한다! (postgresql의 기본 포트정보는 5432이다.) https://www.postgresql.org/Theworld’smostadvancedopensourcedatabase.www.postgresql.orgpostgreSQL 설치시 깔린 PSql이나 pgAdmin을 사용하여 테이블 정보 등을 생성해도 되지만 이미 dbeaver에 익숙해져버렸기 때문에..dbeaver도 설치했다.https://dbeaver.io/download/Community Edition 22.0.2 Released on April 4rth 2022 (Milestones). It is free and open source ( license). Also can
여기까지만 설치하면 연동에 필요한 것은 모두 설치했다.
2. postgresql 데이터베이스 생성 및 dbeaver에 데이터베이스 연동 추가
pgAdmin을 실행한다.

database 오른쪽 버튼을 클릭한 후 cre ate-database를 선택한다.

데이터베이스 이름을 설정한다.

이와 같이 book_ex가 생성되는 것을 확인할 수 있다.기본적으로 postgres 데이터베이스는 생성되어 있다.
그리고 dbeaver를 실행한다.

새로운 데이터베이스 접속을 클릭해 준다.
post gresql을 사용하므로 선택 후 next를 누른다. 참고로 dbever는 데이터베이스 관리툴에서 아래와 같이 다양한 데이터베이스를 접속할 수 있다.


본인이 가져올 데이터베이스명과 username, password, port를 입력한다.포트정보와 사용자 정보가 언급되어 있지 않으면 위와 같으며 pw는 postgresql 설치 시 입력한 pw를 입력한다.
test Connection을 클릭하면

커넥션에 성공한 것을 알 수 있다.
3. 테이블 생성 및 더미 데이터 넣기
pgAdmin으로 생성할 수도 있는데, 필자는 dbeaver로 만들어 보려고 한다.

기본적으로 제공되는 public 이외의 새로운 스키마를 만들어 주었다. (필자는 book_ex로 작성)

새로운 sql 편집기를 연다.

시퀀스와 테이블을 차례로 생성해 준다.그리고 PK로 bno를 지정해 준다.아래 쿼리를 차례로 실행하면 된다.
**시퀀스에서 생성한 seq_board는 게시물의 각 고유번호를 사용하기 위해 생성한다** 한 가지 주의할 점은 오라클에서 현재 날짜 정보는 sysdate로 활용하는데, postgresql에서는 current_timestamp로 활용한다.
다음으로 시퀀스 테이블의 다음 번호를 select 해보면 1이 나올 것이다.만약 벌써 데이터가 1건 들어가 있다면, 「2」가 나올 것이다.
아래 소스를 순서대로 실행하고 시퀀스 후 번호를 확인하고 데이터를 넣어본다.

이렇게 들어오겠지.regdate와 updatedate는 default 값으로 현재 날짜를 설정해 놓고 자동으로 데이터 값이 들어간다.
4.root-context.xml 연동정보 수정
다시 이클립스로 돌아가 db 연동 정보를 수정할 차례다.
첫 번째 사진이 오라클에서 연동되었을 때, 두 번째 사진이 post gresql에서 연동되었을 때의 정보이다.


jdbcUrl 정보에 jdbc:log4jdbc (log4jdbc를 설정한 경우에만 추가해도 됨) : postgresql://localhost:5432/book_ex (본인이 연동되는 데이터베이스)를 입력하면 됨. -> jdbc: log4jdbc:postgres
5. pom.xml 수정 pom.xml에 post gresql 라이브러리를 추가한다.6. boardMapper.xml 수정(xml 수정)
오라클 기반으로 작성된 쿼리를 post gresql에 맞추어 수정한다.자신의 쿼리에 따라 다르겠지만 필자가 크게 고쳐야 할 부분이 다음과 같이 2가지였다.그리고 추가적으로 테이블을 쓸 때 앞에 스키마를 쓰고 쓴 ex)tbl_board -> book_ex.tbl_board postgresql 오라클 현재 날짜 current_time stampsysdate 시퀀스 사용법 nextval(시퀀스 테이블 이름) 시퀀스 테이블. nextval
연동테스트 본서에서는 JUnit Test 에서 확인하고 있다.@Testpublic void test Get List() {mapper.get List().for Each(board -> log.info(“result:”+board));” 이 코드는 연동된 데이터베이스에 들어있는 정보를 select에서 모두 가져와야 연동에 성공했음을 보여준다.

연동에 성공한 것을 알 수 있다. 연동정보를 중심으로 포스팅을 하다가 미흡한 내용이 있을텐데 조금이나마 도움이 되셨으면 합니다..! 봐주신 분들 모두 감사합니다.