Oracle 연동

Codren·2021년 8월 18일
0

Section 1. Oracle 설치 및 설정

1. M1 맥북과 Oracle

  • Oracle 은 기본적으로 Mac 전용 OracleDB 를 제공하지 않음
  • 따라서 Mac 에서 OracleDB 를 이용하려면 보통 Docker 를 통해서 이용
  • 하지만 M1 맥북 (arm cpu)은 현재 (2021-08-18)기준으로 Oracle 이용 불가




2. 원격 Oracle 구동

  • Local 이 아닌 원격의 OracleDB 를 이용
  • Win 10 노트북에서 OracleDB 를 구동하고 M1 맥북의 Spring 에서 해당 DB 에 접속 및 연동




3. Oracle 설치

  • Oracle 11g 설치
  • 더 높은 버전이 있지만 Win10 과 현존하는 여러 서버들 간 호환되는 버전임
    (특정 버전의 Oracle을 쓰다가 다른 버전으로 바꾸면 여러 충돌 가능성이 존재)
  • 설치완료 (System 계정으로 로그인)




4. Oracle 계정 생성 및 권한설정

  • codren 계정 생성
  • codren 계정에 연결 및 자원에 대한 권한을 부여 (grant)
  • codren 계정이 사용할 기본 설정 테이블스페이스를 users 그룹으로 설정
  • 해당 테이블 스페이스에서 codren 계정의 할당 영역 제한 해제




5. 테이블 생성 및 데이터 삽입

  • codren 계정으로 접속한 뒤 NOTICE 테이블 생성

  • Test 용도의 데이터 Insert (행 삽입)




6. Oracle 방화벽 설정

  • Local 이 아닌 원격에서 OracleDB 에 접속을 할 수 있도록 방화벽 설정에서 포트 활성화

    ① Window 방화벽 설정 -> 고급 설정


     ② 해당 컴퓨터로 들어오는 접근에 대한 새 규칙을 생성 (인바운드 규칙)


     ③ Local 상에서 OracleDB 는 1521 포트에서 수행되므로 1521 에 대한 접근 요청을 허용




Section 2. Oracle 연동

1. JDBC

자바로 데이터베이스에 접속하고 SQL문을 수행할 때 사용되는 표준 SQL 인터페이스 API




2. JDBC 라이브러리

  • pom.xml 파일에 JDBC dependency 주입




3. Entity 생성

  • 공지사항 List 에 표시될 공지사항 객체, 테이블 스키마 선언하는 .java 파일
  • DB 에 생성된 테이블과 동일한 속성 정의
  • Notice.java 코드




4. Service 생성

  • 공지사항의 List 에 표시될 데이터들을 DB 로부터 받아오도록 쿼리 수행하는 Service 객체
  • NoticeService.java 코드




5. ListController 수정

  • 공지사항의 List 페이지 url 요청이 들어오면 수행되는 Controller 수정
  • Controller 에 Service 객체를 Dependency Injection




6. dispatcher-servlet.xml 수정

  • noticeService 객체를 컨테이너에 생성하도록 하고 해당 객체를 ListController 에 주입




7. List View 페이지

  • <%@ taglib prefix ="c" uri="http://java.sun.com/jsp/jstl/core" %> 추가
  • 공지사항들이 리스트화되어 보여질 부분
  • {n.id} 는 list 객체의 id 속성을 출력하는 것이 아닌 getId() getter 메서드 수행




8. 연동 성공 결과화면

  • OracleDB 에서 Test 용도로 Insert 수행한 공지사항 출력됨



error


1. Oracle Adapter Connection error

  • 서비스 설정에서 Oracle 관련 서비스 시작




2. 원격 Oracle 접속 error

  • 위에서 설명한 방화벽 설정에서 오라클 포트를 열어주면 해결됨

0개의 댓글