http://h2database.com/html/download-archive.html
H2 데이터베이스를 다운로드하는 곳
최신 버전보다 이전 버전을 사용하자.
최신 버전을 사용해보니 에러가 많다 😥😥
1. cmd에서 h2 폴더의 bin으로 이동한다.
cd C:\Program Files (x86)\H2\bin
2. h2.bat을 치면 H2 데이터베이스를 사용할 수 있는 페이지가 뜬다.
잘 안 열리면 앞에만 IP를 localhost로 바꾼다.
JDBC URL은 jdbc:h2:~/test다.
8082포트가 막힐 경우에는(java.net.BindException) cmd에서 netstat -ano|find "8082" 한 후에 taskkill /f /pid 8082의 pid넘버를 치면 프로세스가 종료됨.
로컬주소가 0.0.0.0:8082의 Pid를 입력하자.
첨에 강의에서 기본값대로 연결했다가 폴더에 있는 test.mv.db 지우고 톰켓에 연결한다고 jdbc:h2:tcp://localhost/~/test를 연결했는데 에러뜬다. 걍 윈도우는 위에 localhost로 바꿔주고 JDBC URL 건들지마.
spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=none
application.properties에 h2 데이터베이스를 사용할 수 있도록 위와 같이 작성
spring.jpa.hibernate.ddl-auto | =update JPA에 의해 변경된 부분만 추가(이미 존재하는 컬럼의 이름을 바꾸는 것은 JPA가 자동으로 업데이트 해주지는 않음, 제거도 없음) =validate 엔티티와 테이블이 정상적으로 매핑되어있는지만 검증 =create 이전 스키마 삭제 후 다시 생성 =create-drop 스키마를 생성하고 애플리케이션이 종료되면 삭제 =none 초기화 동작이 없음 |
spring.jpa.generate-ddl | spring.jpa.hibernate.ddl-auto 속성을 사용할 것인가? 기본값은 false |
spring.jpa.show-sql | JPA가 생성한 SQL문 출력 |
spring.jpa.properties.hibernate.dialect | 쓰지말자. |
spring.mvc.hiddenmethod.filter.enabled | =true/false HTML에서 put, delete로 서버에 요청을 보낼 때 |
drop table if exists member CASCADE;
create table member
(
id bigint generated by default as identity,
name varchar(255),
primary key(id)
);
테이블 생성
java에서 long은 db에서 bigint
generated by default as identity는 값을 setting하지 않고 insert하면 db에서 자동으로 id값을 채워준다.
select*from member;
조회
insert into member(name) values('spring')
name으로 'spring'을 삽입.
alter table 테이블명
add foreign key (외래키)
references 참조테이블명(참조할키)
외래키 추가
show columns from 테이블명;
테이블 구조 조회
참고 👇
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
https://kyu9341.github.io/java/2020/04/14/java_springBootDBinit/
https://2dongdong.tistory.com/66
https://wookcode.tistory.com/68
https://pythonq.com/so/sql/199799