스프링 DB 접근 기술
- H2 데이터베이스 설치
- 순수 JDBC
- 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API임
- 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공함
- 스프링 통합 테스트
- 스프링 JdbcTemplate
- JPA
- 이 기술을 쓰면 객체를 바로 db에 쿼리없이 저장하고 관리할 수 있음
- 스프링만큼 오래된 기술
- 스프링 데이터 JPA
H2 데이터베이스 설치
이전 시간에 인텔리제이에서 작업했던 거는 메모리에 저장을 해서, 서버가 내려가면 회원 데이터가 모두 사라짐.
당연히 그렇게 되면 안 됨.
그래서 실무에서는 데이터베이스에 데이터들을 저장하고 관리함.
심플하고 간단한 H2 데이터베이스를 설치하기로 함.
https://www.h2database.com/html/download-archive.html
인프런 인강에서처럼 1.4.200 으로 설치
H2 폴더는 C드라이브 안에 있었다.
💡Program Files (x86) > H2 > bin > h2.bat
- `h2.bat` 더블 클릭하면 위와 같은 화면이 뜬다.
👉 Home에 ` test.mv.db`가 있는지를 먼저 확인해야 한다.
윈도우의 경우 `C드라이브 > 사용자` 안에서 확인할 수 있음.
jdbc:h2:tcp://localhost/~/test
이렇게 적으면 파일에 직접 접근하는 게 아니라 소켓을 통해서 접근한다고 함.
JDBC URL을 변경 후 `연결` 버튼 클릭 시 아래와 같은 에러가 났다.
H2 Console
Sorry, remote connections ('webAllowOthers') are disabled on this server.
`h2.bat`을 열었을 때 설정되어있던 IP를 `localhost`로 바꾼 후 다시 연결을 클릭하니!
화면이 잘 나옴.
drop tabel if exists member CASCADE;
create table member
(
id bigint generated by default as identity,
name varchar(255),
primary key(id)
);
CASCADE: 제거할 요소를 참조하는 다른 모든 개체를 함께 제거함. 즉 주 테이블의 데이터 제거 시 각 왜래키와 관계를 맺고 있는 모든 데이터를 제거하는 참조 무결성 제약 조건을 설정하기 위해 사용됨 (참고: 시나공 정처기 필기)
- java는 long인데, sql에서는 bigint임.
- generated by default as identity: null 값이 들어오면 자동으로 id 값을 채워줌
select * from member;
👉 데이터 넣기
insert into member(name) values('spring')
값이 들어간 걸 확인할 수 있다!
insert into member(name) values('spring2')
💡ddl 관리
프로젝트에 `sql` 폴더 만들고, 그 안에 `ddl.sql` 파일 만들어서 관리!
나중에 확인하기 쉬움
굿!
[스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] 강의 기록
300x250
'Framekwork > SPRING' 카테고리의 다른 글
[자바/스프링] 스프링 통합테스트 (0) | 2023.02.25 |
---|---|
[자바/스프링] 순수 JDBC (0) | 2023.02.24 |
[자바/스프링] 자바 코드로 직접 스프링 빈 등록하기 (0) | 2023.02.21 |
[자바/스프링] 스프링 빈과 의존관계 (0) | 2023.02.20 |
[자바/스프링] API (getter, setter, json) (0) | 2023.02.14 |