전자 정부 표준 프레임워크

Oracle 연동

 

egov는 기본적으로 MySQL을 사용하게 되어있습니다.

그러므로 Oracle을 사용하기 위해서는 따로 설정을 추가해주어야 합니다.

 

1. /프로잭트명/pom.xml 수정

pom.xml에 있는 <dependencies>를 찾아서 맨위에나 맨아래에 (맨위가 나아요)

<dependencies>
        ...
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc14</artifactId>
            <version>10.2.0.4.0</version>
        </dependency>
        ...
</dependencies>

을 추가하고 저장을 한번 합니다. 그러면

dependency만 추가하고 저장을 하면 에러가 발생합니다.

<repository>
    <id>mesir-repo</id>
    <url>http://mesir.googlecode.com/svn/trunk/mavenrepo</url>
</repository>

이것을 <dependencies> 바로위에 있는 <repositories>에 추가하면 에러가 사라집니다.

이렇게 말이죠

 

참고로 Oracle에 접속해서 데이터베이스를 하나생성할때 생기는 흔한 문제를 적어보겠습니다

listener refused the connection with the following error ora-12505
이러한 상태 실패 메세지가 나타나게 된다면 네모칸의 SID(DB의 이름)이 잘못된 것입니다.
sql plus를 실행시킵니다

SQL > select instance from v$thread; 라고 치게되면
현재 사용되고 있는 DB 인스턴스 이름을 알수있습니다
SID의 이름을 고치고 한번 테스트를 해봅시다.

성공 참 쉽죠?

 

2. Database 연결 설정 변경

/프로잭트명 /src /main /resources /egovframework /spring /context-datasource.xml 을 열어서 기본 HSQL 부분을 주석 처리 하고 오라클 관련 부분을 주석 해제 한 후

property에 url, username, password 부분을 자신의 환경에 맞게 변경 한다.
저는 scott / tiger 입니다

 

3. 샘플테이블 생성

처음에 프로잭트 생성하며 눌렀던 샘플 소스코드 생성을 테스트하려면 테이블을 생성해야 한다.

 

/프로잭트명 /DATABASE /db /sampledb_oracle.script 에 있는 스크립트를 오라클에서 실행하면 샘플 테이블이 생성된다.

DROP TABLE IF EXISTS  SAMPLE ; <- 지운다

CREATE TABLE SAMPLE (
  ID varchar(16) NOT NULL,
  NAME varchar(50) DEFAULT NULL,
  DESCRIPTION varchar(100) DEFAULT NULL,
  USE_YN char(1) DEFAULT NULL,
  REG_USER varchar(10) DEFAULT NULL,
  PRIMARY KEY (ID)
);

DROP TABLE IF EXISTS  IDS ; <- 지운다

CREATE TABLE IDS (
  TABLE_NAME VARCHAR(16) NOT NULL,
  NEXT_ID DECIMAL(30) NOT NULL,
  PRIMARY KEY (TABLE_NAME) 
);

INSERT INTO IDS VALUES('SAMPLE',0);

COMMIT;

일괄 실행시 DROP 문장의 문법이 틀려 에러가 나므로

DROP 문장을 주석 처리 또는 삭제 후 실행하자

INSERT INTO SAMPLE VALUES('SAMPLE-00001','Sample Test','This is initial test data.','Y','test');
INSERT INTO SAMPLE VALUES('SAMPLE-00002','test Name','test Desc','Y','test');
INSERT INTO SAMPLE VALUES('SAMPLE-00003','test','tset111222','Y','qqqq');
INSERT INTO SAMPLE VALUES('SAMPLE-00004','Sample Test1','This is initial test data.','Y','test');
COMMIT;

그냥 실행하면 데이터가 없다고 하니 데이터를 넣어야 된다

 

4. SQL Map 변경

/프로잭트명 /src /main /resources /egovframework /sqlmap /sql-map-config.xml 을 열어서 기본 쿼리를 주석처리 하고, 오라클용 쿼리에 주석을 제거한다.

 

4. 실행

이와같은 창이 뜨게되면 오라클과 egov연동에 성공한 것이다.

 

 

 

 

댓글

가늘고 길게~~

댓글 본문
작성자
비밀번호
  1. 개발자2
    전자정부 3.0을 쓰려하는데요. 오라클 연동시 아래와같이 repository에 이렇게 추가를 해도

    <repository>
    <id>mesir-repo</id>
    <url>http://mesir.googlecode.com/svn/trunk/mavenrepo</url>
    </repository>

    이렇게 추가를 해도 dependency 부분에서 에러가 나네요.
  2. zzangjo0
    추가로 3.5.1버전은 Sql Map이 하나인데 오라클 사용자분은
    아래 문구를 주석처리하시면 정상적으로 될겁니다.
    LIMIT #recordCountPerPage# OFFSET #firstIndex#
  3. zzangjo0
    전자정부 프레임워크 3.5.1 버전에서 위와 같은 방법이 안되서 아래처럼 했습니다.
    odbc6.jar 파일 경로는 아래 시스템 패쓰 경로에 jar파일을 넣어서 했습니다.

    <!-- 오라클 연동을 위해 추가 LOCAL -->
    <dependency>
    <groupId>oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.2.0</version>
    <scope>system</scope>
    <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc6.jar</systemPath>
    </dependency>

    그리고 아파치 과련 에러는 아래 문구를 추가해서 잡았습니다.

    <!-- 오라클 연동을 위해 추가 (아파치 에러 문제로 추가)-->
    <dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
    </dependency>
버전 관리
김씨밥세끼드셨나요
현재 버전
선택 버전
graphittie 자세히 보기