본문 바로가기
개인/[java] 스프링 입문 공부

스프링 DB 접근 (h2)

by hyeley5 2023. 7. 6.

간단하게 H2 데이터베이스로 설치한다.

 

http://h2database.com/html/main.html 

 

H2 Database Engine

H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size     Supp

h2database.com

All Platforms로 설치

 

정한 디렉터리에 압축 풀고

bin 으로 들어가서

chmod 755 h2.sh (권한을 설정해준다. 맥 환경만)

 

후에 

./h2.sh   (연결)

입력하면

사이트가 뜬다.

 

 

확인 후

홈에서 

test.mv.db

이 파일이 있어야한다.

 

JDBC URL 에서

기존에 jdbc:h2:~/test 말고

jdbc:h2:tcp://localhost/~/test 이걸로 변경한다.

 

이렇게 해야 파일 직접 접근이 아닌 통해서 접근할 수 있게 된다. (충돌 방지)

 

수정 후 연결이 안됐다가

다시 재부팅 후 앞에 localhost로 바꾸고 나니 됐다.

 

연결 후 sql로 테이블 작성

sql 구문 중에

 

id bigint generated by default as identity,

 

generated by default as identity 이 부분은 값이 없으면 DB가 자동으로 채워준다.

PK 는 id로 잡았다.

 

 

이렇게 확인되는 것을 볼 수 있다.

 

 

insert 해서

추가가 잘 되었는지도 확인되었다.

 

강사님께선 추가적으로 sql폴더를 만들어서 따로 저장해서 관리한다고 하셨다.

 

왜 프로젝트할 때 안에 자체적으로 관리하는 방법을 아예 생각하지 못했을까?.. 흠

 

다음에 이어서.

 

build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가하고.

스프링 부트 데이터베이스 연결 설정 추가해준다.

application.properties 파일에 넣어주면 된다. (spring의 장점!)

 

(주의 : spring.datasource.username=sa 를 추가하지 않으면,
Wrong user name or password 오류가 발생한다고 한다. + 공백 무조건 제거!)

이렇게 하면 DB 접근에 대한 준비는 끝!

 

JdbcMemberRepository 를 생성하고 try catch 구문 안에 Connection 관련 설명을 듣고... 

고전 스타일을 설명해주셨다 ㅎㅎ..!

예전에 프로젝트 때 하나하나 sql 문으로 적었던 방법이 생각나는,,,, ㅠ ㅠ

 

SpringConfig 에서 연결해주고 테스트를 해본다.

 

테스트 확인 완료

 

이 부분이 springd의 큰 장점이다. --> 다형성을 활용!

과거에는 의존하는 곳에서 모든 member서비스를 다 수정해야했다!

 

SpringConfig 에서 애플리케이션을 설정하는 것 -> 어셈블리 하는 것. (조립)

이 코드에서만 손대면 다른 부분을 손댈 일이 없기 때문에 엄청 편리한 것이다.

 

스프링의 DI (Dependencies Injection)을 사용하면 기존 코드 수정 X, 설정 만으로 구현 클래스를 변경할 수 있다.

 

이런 것을
개방-폐쇄 원칙(OCP, Open-Closed Principle) 이라 한다.

  • 확장에는 열려있고, 수정, 변경에는 닫혀있다.            

이것이 객체지향의 매력!

 

다음은 통합 테스트를 진행!

댓글