자바 스프링 강의 2주차 내용 중 RDBMS에 관한 정리이다.
이번 강의에서는 H2,MySQL을 사용한다고 하는데
H2 : In-memory DB의 대표 주자이고, 서버가 작동하는 동안만 사용되는 데이터베이스라고 한다. 연습,개발용으로 아주 유용하다고
MySQL : 강의에서는 서비스를 배포할 때 사용한다고 함. AWS RDS 라는 서비스를 사용해 볼 예정이고 Spring과의 궁합이 좋아서 많은 회사에서 사용한다고 한다.
H2를 사용할 때는 먼저 웹콘솔 설정을 해줘야 하는데
src > main > resources > application.properties
로 들어가서
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
요렇게 작성해주면 된다고 한다. 사람마다 작성하는 코드가 다를 수도 있겠지만 이 강의에서는 이렇게 작성!
그리고 나서 localhost:8080/h2-console 로 들어가면 된다.
여기서 여러 에러가 났었는데 JDBC URL:
부분이 jdbc:h2:mem:testdb
로 잘 들어가 있는지 확인해야한다.
여기서 connect를 눌러서 접속.
이런 페이지로 들어오게 되는데 여기서 테이블을 만드는 코드를 작성해 준다.
CREATE TABLE IF NOT EXISTS 테이블명 (
id bigint(5) NOT NULL AUTO_INCREMENT,
필드명 varchar(255) NOT NULL,
필드명 varchar(255) NOT NULL,
필드명 bigint(5) NOT NULL,
PRIMARY KEY (id)
);
테이블은 본인이 원하는 형태로 테이블명, 필드명, 타입을 잘 작성해주면 된다.
혹시 여기서 에러(Syntax error in SQL statement ~~)가 나게 된다면,
src > main > resources > application.properties
spring.datasource.url=jdbc:h2:mem:testdb;MODE=MYSQL
이 부분을 확인하면 된다. application.properties으로 가서 위에서 먼저 작성했던 spring.datasource.url=jdbc:h2:mem:testdb
이후에 ;MODE=MYSQL
을 추가해주면 되는 것.
찾아보니 스프링부트 2.1.10 버전 이후에는 직접 ;MODE=MYSQL
을 추가해줘야 한다고 한다.
자 여기까지 잘 왔다면,
INSERT INTO 테이블명 (필드명 1, 필드명 2) VALUES
('필드명 1에 맞는 데이터', '필드명 2에 맞는 데이터'),
('필드명 1에 맞는 데이터', '필드명 2에 맞는 데이터');
필드명 1에 맞는 데이터는 무엇인가???
만약 테이블 명을 user라고 잡고 필드1을 name, 필드 2를 age로 잡았다고 해보자
그러면 생성 코드부터 작성을 해야한다.
CREATE TABLE IF NOT EXISTS user (
id bigint(5) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
aeg bigint(5) NOT NULL,
PRIMARY KEY (id)
);
이런 식으로 테이블을 만들고 나서
INSERT INTO user (name, age) VALUES
('궤도민수', 35),('승호', 28);
이렇게 데이터를 넣어주면! name 필드에 궤도민수와 승호가 들어가고, age 필드에 35,28이 잘 들어가는 것이당.
자 그럼 잘 들어갔는지 조회를 해보자
select * from user
코드는 sql에서 사용되는 select문을 사용해주면 된다.
요렇게 잘 들어간 것을 확인 할 수 있다.
(참여해주신 궤도민수 선생님 감사합니다 땡큐.)
이 부분은 이해하기도 쉽고 에러 대처도 아주 간단해서 좋았다. 다음 강의로 넘어가자!