Spring

Spring 일지 #5 (20210914) 오라클 연동

uni5948 2021. 9. 14. 17:04

5. 오라클 연동

-오라클 설치

 *http://ihongss.com/

 **filelist에서 두번 째 파일 다운

오라클 다운로드

  *다운로드 완료 후 압축 해제

압축 해제

 *exe 파일로 실행

오라클 실행

 -오라클 테스트

 **테스트 완료 후 접속 버튼으로 생성

 *오라클 실행 후 새로 만들기 실행

 

 *오라클 테스트

오라클 테스트

-오라클 연동하기

 *dependency, repositories 추가(pom.xml)

<repositories>

        <repository>

            <id>oracle</id>

            <name>ORACLE JDBC Repository</name>

            <url>http://maven.jahia.org/maven2</url>

        </repository>

    </repositories>

... ...

<!--oracle-->

        <dependency>

            <groupId>com.oracle</groupId>

            <artifactId>ojdbc7</artifactId>

            <version>12.1.0.2</version>

        </dependency>

 

        <!--jpa-->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-data-jpa</artifactId>

        </dependency>

 

 *저장 후 dependency 확인

 **maven에 dependency가 없다면 java project에 dependency 확인

dependency 확인

 *환경 설정(application.properties)

 **저장 후 재시작

spring.datasource.driver-class-name=oracle.jdbc.OracleDriver

spring.datasource.url=jdbc:oracle:thin:@1.234.5.158:11521/xe

spring.datasource.username=id311

spring.datasource.password=pw311

 

spring.jpa.hibernate.ddl-auto=update

 

*테이블, 시퀀스 생성하기(Board.java)

package com.example.entity;

 

import java.util.Date;

 

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.SequenceGenerator;

import javax.persistence.Table;

 

import org.hibernate.annotations.CreationTimestamp;

 

import lombok.Getter;

import lombok.NoArgsConstructor;

import lombok.Setter;

import lombok.ToString;

 

@Getter

@Setter

@NoArgsConstructor

@ToString

 

@Entity // 엔티티 => 자동으로 테이블 생성

@Table(name = "BOARD1"// 테이블명

@SequenceGenerator(

    name = "SEQ_BOARD1"

    sequenceName = "SEQ_BOARD1_NO"

    initialValue = 1, allocationSize = 1// 시퀀스 생성(자동으로 증가되는 번호

 

public class Board {

    @Column(name = "NO"// 칼럼명

    @Id // 기본키(중복x)

    // 여기에 추가되는 정보는 위에 생성한 시퀀스 사용

    @GeneratedValue(strategy = GenerationType.SEQUENCEgenerator = "SEQ_BOARD1")

    private Long no = 0L// 글번호

 

    @Column(name = "TITLE")

    private String title = null// 글제목

 

    @Column(name = "CONTENT")

    private String content = null// 내용

 

    @Column(name = "WRITER")

    private String writer = null// 작성자

 

    @Column(name = "HIT")

    private int hit = 1// 조회수

 

    @CreationTimestamp // 날짜는 자동으로 추가

    @Column(name = "REGDATE")

    private Date regdate = null// 날짜

}

 

 *entity 등록하기(Boot20210914Application.java)

@EntityScan(basePackages = { "com.example.entity" })

 

 *오라클 실행

 **기존에 만든 oracle1을 새로고침 한뒤 테이블과 시퀀스가 있는지 확인한다.

 **시퀀스가 없을 경우 : vscode에 terminal 종료 후 application.properties의 코드 중

    spring.jpa.hibernate.ddl-auto=update update create-drop 로 변경 후 저장

    이후 run 한 뒤 오라클을 새로 고침하여 시퀀스 생성 확인.

    그리고 다시 create-drop -> update 로 변경 후 재시작.

테이블, 시퀀스 확인

  *저장소 생성(repository)

  **BoardRepository.java 생성 

package com.example.repository;

 

import com.example.entity.Board;

 

import org.springframework.data.jpa.repository.JpaRepository;

 

public interface BoardRepository extends JpaRepository<BoardLong> {

 

}

 

*저장소 등록(Boot20210914Application.java)

@EnableJpaRepositories(basePackages = { "com.example.repository" })