-
bank app4 - h2 db 초기 값 설정spring boot 2023. 4. 14. 14:37
bank app - h2 db 초기 값 설정
학습 목표
H2 메모리 DB 초기 테이블 설정 및 초기 데이터 셋팅
1. yml 파일 확인 및 추가 설정
2. H2 인 메모리 접근 및 데이터 확인yml 설정 추가
server: port: 8080 servlet: encoding: charset: utf-8 force: true spring: mvc: view: prefix: /WEB_INF/view/ suffix: .jsp datasource: url: jdbc:h2:mem:testdb;MODE=MySQL driver-class-name: org.h2.Driver username: sa password: sql: init: schema-locations: - classpath:db/table.sql data-locations: - classpath:db/data.sql h2: console: enabled: true output: ansi: enabled: always
table.sql
-- 유저 테이블 설계해 보기 CREATE TABLE user_tb( id int AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) not null UNIQUE, password VARCHAR(30) not null, fullname VARCHAR(50) not null, created_at TIMESTAMP not null DEFAULT now() ); -- 사용자에 계좌 정보 테이블 설계 CREATE TABLE account_tb( id int AUTO_INCREMENT PRIMARY KEY, number VARCHAR(30) not null UNIQUE, password VARCHAR(20) not null, balance BIGINT not null COMMENT '계좌 잔액', user_id int, created_at TIMESTAMP not null DEFAULT now() ); -- 입금 내역 저장 -- 출금 내역 저장 -- 사용자간 이체 내역 저장 -- 사용자들에 history 테이블 설계 -- BIGINT 8바이트 크기에 정수형 -- 조(10에 12) -- 경(10에 16승) -- 해(10에20승) -- 자(10에 24) -- 양(10에 28) CREATE TABLE history_tb( id int AUTO_INCREMENT PRIMARY key COMMENT '거래 내역 ID', amount BIGINT not null COMMENT '거래 금액', w_account_id int COMMENT '출금 계좌 id', d_account_id int COMMENT '입금 계좌 id', w_balance BIGINT COMMENT '출금 요청된 계좌에 잔액', d_balance BIGINT COMMENT '입금 요청된 계좌에 잔액', created_at TIMESTAMP not NULL DEFAULT now() );
data.sql
INSERT INTO user_tb(username, password, fullname, created_at) values('길동', '1234', '고', now()); INSERT INTO user_tb(username, password, fullname, created_at) values('둘리', '1234', '애기공룡', now()); INSERT INTO user_tb(username, password, fullname, created_at) values('콜', '1234', '마이', now()); INSERT INTO account_tb(number, password, balance, user_id, created_at) values('1111', '1234', 900, 1, now()); INSERT INTO account_tb(number, password, balance, user_id, created_at) values('2222', '1234', 1100, 2, now()); INSERT INTO account_tb(number, password, balance, user_id, created_at) values('333', '1234', 0, 3, now()); -- 이체 내역을 기록 ( 1번 계좌에서 2번 계좌로 100원을 이체 한다) INSERT INTO history_tb(amount, w_balance, d_balance, w_account_id, d_account_id, created_at) VALUES (100, 900, 1100, 1, 2, now()); -- 출금 내역 ( 1번계좌에서 100원을 출금 처리 ) INSERT INTO history_tb(amount, w_balance, d_balance, w_account_id, d_account_id, created_at) VALUES (100, 800, null, 1, null, now()); -- 입금 내역 (1번 계좌에 500원 입금 처리 ) INSERT INTO history_tb(amount, w_balance, d_balance, w_account_id, d_account_id, created_at) VALUES (500, null, 700, null, 1, now());
결과 확인
http://localhost:8080/h2-console
'spring boot' 카테고리의 다른 글
bank app6 - 화면구현(1) (0) 2023.04.17 bank app5 - MyBatis 설정 (0) 2023.04.17 bank app3 - 모델링 (0) 2023.04.14 bank app2 - 네이밍 (0) 2023.04.14 bank app1 - 프로젝트 설정 (0) 2023.04.14