DB연결 환경세팅

bethe·2022년 8월 31일
0

Springboot

목록 보기
23/46

CV패턴을 연습해보기 전에 DB와 연결하는 환경세팅을 배워보자.

1. H2 Database

  1. 프로젝트를 생성할 때 H2 Database 라이브러리를 체크한다.

SpringBoot DevlToos : 코드 변경시 재컴파일해서 서버 실행하는 라이브러리
SpringWeb : DispatcherSevlet 생성, Controller와 관련된 어노테이션을 사용 가능하게 해줌
Lombok : @getter @setter @생성자 @toSring 등의 어노테이션을 사용 가능하게 해줌
H2 Database : DBSM(오라클, MariaDB) 이 없어도 DB Test가 가능한 Test DB

build.gardle의 dependencies에

runtimeOnly 'com.h2database:h2'

가 생긴 것을 볼 수 있다.
'com.h2database:h2'는 Library가 아니라 Database이다


  1. jdbc 라이브러리 세팅
    Database는 그냥 데이터베이스임
    implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    데이터 베이스를 연결해주는 라이브러리
    (라이브러리 설정할 땐 꼭 서버를 꺼주고 refresh시켜준 뒤 서버를 실행하자)

  1. H2 Console창 열기
    웹에 http://localhost:8000/h2-console 로 접속하면 H2 Console 커넥트 창이 뜬다.


  1. application.properties에서 연결 설정하기
spring.h2.console.enabled=true
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.username=sa
spring.datasource.password=

context.xml에 적을 내용을 spring에서 적는 것

  1. H2 Console창에 설정한대로 입력

비밀번호가 없기 때문에 비밀번호 입력 없이 Connect하면 연결됨

  1. Connection 완료

실제로 DB가 하드디스크에 뜨진 않고 메모리에 뜬거기 때문에
서버를 꺼버리면 DB가 꺼짐


2. Oracle 연결

Oracle Driver / Oracle driver : jdbc
runtimeOnly 'com.oracle.database.jdbc:ojdbc8'
h2는 드라이버가 아니라 데이터베이스
Oracle은 오라클을 연결해주는 라이브러리

DB기 때문에 Oracle연결하면 필요없음>2개 지워주자

  1. 오라클 아이디와 패스워드가 다르니까 properties의 설정도 바꿔야 한다.

spring.datasource.driver-class-name=oracle.OracleDriver
spring.datasource.url=jdbc:orcale:thin:@localhost:1521:xe
spring.datasource.username=SCOTT
spring.datasource.password=TIGER

spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
최신드라이버를 썼더니 충돌해서 oracle.jdbc.OracleDriver를 사용했다.

서버 실행시 오류가 뜬다?

작업관리자-서비스에서 확인
오라클이 실행되고 있어야 가능함


package site.metacoding.yellow.domain;

import javax.persistence.Entity;
import javax.persistence.Id;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@AllArgsConstructor
@NoArgsConstructor
@Setter
@Getter
@Entity
public class Products {
	//프라이머리키가 없다는 오류가 뜸->@ID
	@Id
	private Integer id;
	private String name;
	private Integer price;
	private Integer qty;
} 

짜잔 Oracle SQL Developer에 들어가면 products가 만들어져 있습니다~


  1. JPA
    spring.jpa.hibernate.ddl-auto=create

jpa : 자바 클래스와 DB테이블을 매핑하는 인터페이스.
hibernate는 라이브러리이다.

java코드로 테이블을 만들수있음(원래는 DB테이블 보고 테이블을 만들어야 하는데 ㅎㅎ)

드롭하고 만들고 드롭하고 만들고<- 매번 서버 실행할 때마다

spring.jpa.show-sql=true
sql문을 콘솔에 띄워주는 역할이래여

profile
코딩을 배우고 기록합니다. 읽는 사람이 이해하기 쉽게 쓰려고 합니다.

0개의 댓글