SpringBoot(JPA,Gradle)

[SpringBoot] Spring Boot와 Oracle 19C 연결

에띠 2022. 6. 21. 14:37
728x90

오늘은 Oracle 19cSQL Developer를 다운로드하고, Oracle 데이터베이스에 사용자 및 테이블을 생성하는 방법을 알아보겠습니다.


1. Oracle 19c & SQL Developer 다운로드

[Oracle 19c & sql developer 다운로드, 사용자 생성 방법]

 

[Oracle] Oracle 19c, sql developer 다운로드

Oracle 19c https://www.oracle.com/database/technologies/oracle-database-software-downloads.html sql developer https://www.oracle.com/kr/tools/downloads/sqldev-v192-downloads.html 위 방식으로 데이터베이스 새로 만들기 system(관리자계정)

yoo0924.tistory.com

 

 

2. 데이터베이스 테이블 생성 쿼리

이제 데이터베이스에서 사용할 테이블을 생성해 보겠습니다. 아래는 간단한 관리자 테이블, 회원 테이블, 카테고리 테이블 등을 생성하는 SQL 쿼리입니다.

관리자 테이블 생성

-- 관리자 테이블
create table admin_user(
    id number(7) not null,
    userid varchar2(20) not null,
    userpw varchar2(20) not null,
    name varchar2(20) not null,
    status varchar2(10) not null,
    last_login date,
    create_by varchar2(20),
    reg_date date default sysdate
);

create sequence seq_admin
    increment by 1
    start with 1;
    
select * from admin_user;

설명:

  • admin_user 테이블은 관리자 정보를 저장합니다.
  • seq_admin은 id 컬럼을 자동으로 증가시켜주는 시퀀스입니다.

 

회원 테이블 생성

-- 회원 테이블
create table users(
    id number(7) primary key,
    userid varchar2(20) unique not null,
    userpw varchar2(20) not null,
    hp varchar2(20) not null,
    email varchar2(50),
    reg_date date default sysdate,
    update_date date
);

create sequence seq_users
    increment by 1
    start with 1;

설명:

  • users 테이블은 사용자의 기본 정보를 저장합니다.
  • seq_users는 사용자 id 컬럼의 값을 자동 증가시킵니다.

카테고리 테이블 생성

-- 카테고리 테이블
drop table category;
create table category(
    id number(7) primary key,
    type varchar2(30) not null,
    title varchar2(30) not null,
    reg_date date default sysdate,
    update_by varchar2(20),
    update_date date
);

create sequence seq_cate
    increment by 1
    start with 1;

 

설명:
  • category 테이블은 상품이나 서비스의 카테고리를 관리합니다.
  • seq_cate는 카테고리 ID의 자동 증가를 위해 사용됩니다.

 

파트너 테이블 생성

-- 파트너 테이블
drop table partner;
create table partner(
    id number(7) primary key,
    name varchar2(30) not null,
    status varchar2(20) not null,
    address varchar2(100),
    business_number varchar2(20),
    reg_date date default sysdate,
    update_date date,
    category_id number(7),
    constraint fk_cate foreign key(category_id) references category(id)
);

create sequence seq_partner
    increment by 1
    start with 1;

설명:

  • partner 테이블은 파트너 정보를 저장합니다. 이 테이블은 category_id를 외래키로 category 테이블과 연관됩니다.
  • seq_partner는 파트너 id 컬럼을 자동 증가시킵니다.

 

아이템 테이블 생성

-- 아이템 테이블
create table item(
    id number(7) primary key,
    name varchar2(50) not null,
    status varchar2(20) not null,
    title varchar2(50) not null,
    content varchar2(1000),
    price number(10) default 0,
    reg_date date default sysdate,
    create_by varchar2(20),
    update_Date date,
    update_by varchar2(20),
    partner_id number(7),
    constraint fk_item foreign key(partner_id) references partner(id)
);

create sequence seq_item
    increment by 1
    start with 1;
설명:
  • item 테이블은 상품에 대한 정보를 저장합니다. partner_id는 파트너 테이블과 연관되어 있습니다.
  • seq_item은 id 컬럼의 자동 증가를 위해 사용됩니다.

 

상품 구매 내역 테이블 생성

-- 상품 구매 내역
create table order_group(
    id number(7) primary key,
    order_type varchar2(20) not null,
    status varchar2(20) not null,
    rev_address varchar2(100) not null,
    rev_name varchar2(20) not null,
    payment_type varchar2(20) not null,
    total_price number(10) default 0,
    total_quantity number(7) default 0,
    order_at date,
    arrival_date date,
    reg_Date date default sysdate,
    users_id number(7),
    constraint fk_group foreign key(users_id) references users(id)
);

create sequence seq_group
    increment by 1
    start with 1;
설명:
  • order_group 테이블은 상품 구매 내역을 관리합니다. 사용자의 주문 정보가 포함됩니다.
  • seq_group은 id 컬럼의 자동 증가를 위해 사용됩니다.

 

상품 구매 상세 테이블 생성

-- 상품 구매 상세
create table order_detail(
    id number(7) primary key,
    arrival_date date,
    status varchar2(20) not null,
    quantity number(7) default 0,
    total_price number(10) default 0,
    reg_date date default sysdate,
    item_id number(7),
    order_group_id number(7),
    constraint fk_item_default foreign key(item_id) references item(id),
    constraint fk_order_group foreign key(order_group_id) references order_group(id)
);

create sequence seq_detail
    increment by 1
    start with 1;

설명:

  • order_detail 테이블은 각 주문에 대한 상세 정보를 저장합니다. 상품별로 주문이 나누어집니다.
  • seq_detail은 id 컬럼의 자동 증가를 위해 사용됩니다.

3. Spring Boot와 Oracle 데이터베이스 연결

이제 Spring Boot 애플리케이션에서 Oracle 데이터베이스와 연결하는 방법을 알아보겠습니다. 이를 위해서는 application.properties 또는 application.yml 파일을 설정해야 합니다.

3.1 application.properties 설정

src > main > resources > application.properties

Spring Boot에서 Oracle 데이터베이스를 사용하려면 application.properties 파일에 아래와 같이 연결 정보를 설정합니다.

spring.datasource.url=jdbc:oracle:thin:@호스트명(localhost):포트번호:SID
spring.datasource.username=사용자 이름
spring.datasource.password=사용자 비밀번호

 

3.2 application.yml 설정

만약 application.yml 파일을 사용하는 경우, 아래와 같이 설정할 수 있습니다.

src > main > resources 우클릭 > 새파일 > application.yml 생성

spring:
  datasource:
    driver-class-name: oracle.jdbc.OracleDriver
    url: jdbc:oracle:thin:@호스트이름:포트번호:SID
    username: 접속계정 아이디
    password: 접속계정 비밀번호

설명:

  • url: Oracle 데이터베이스의 접속 URL을 설정합니다. localhost, 1521, ORCL은 일반적인 기본값입니다.
  • username과 password: 데이터베이스 접속을 위한 사용자명과 비밀번호입니다.

이제 Spring Boot 애플리케이션이 Oracle 데이터베이스에 연결되었습니다. 오류 없이 실행되면 성공입니다!


 

이렇게 Oracle 19cSQL Developer를 설정하고, 필요한 테이블들까지 생성하는 방법을 다뤄봤습니다. 테이블 생성 쿼리에는 파트너 테이블, 아이템 테이블, 상품 구매 내역상품 구매 상세 테이블을 포함하여, 실제 데이터베이스를 구축할 때 유용한 정보를 제공했습니다.

이 글이 도움이 되셨기를 바랍니다! 😊

728x90