본문 바로가기

db/oracle

egov 4.1 oracle 연결

반응형

 

2024.02.07 - [dev/egov] - spring boot 시작 egov 4.1

 

spring boot 시작 egov 4.1

백수 될때마다 사이트를 처음부터 만들어 보고 있습니다. 프로젝트가 끝날때마다 새롭게 익힌 기능도 구현해 보기 위서도 있습니다. 이번에 egov 버전을 확인해 보니 최신버전인 4.1로 시작해 보

st-d.tistory.com

 

위 글 작성 후 oracle 연결 작업 중 발생 한 내용입니다.

 

spring에서 mybatis, ibatis를 활용하여  multi db 접속할 수 있게 먼저 작업을 하였습니다.

예전에 작업해 놓은 게 있어서 금방 끝날 줄 알았지만 3시간이 이상 걸렸습니다.

 

spring boot oracle 접속하려고 작업 중 문제가 발생했습니다.

산 넘어 산이라는 생각이 들었습니다.

 

spring boot에서는 설정하는 xm 아래 결로에서 l파일이 하나도 없었습니다.

\src\main\resources\egovframework\spring\**

 

메모리 db사용으로 게시판화면이 나오는 걸 확인했으니 어딘가에 db 설정이 있을 거다라고 생각했습니다.

아래 경로에 java로 설정 파일들이 설정되어 있었습니다.

\src\main\java\egovframework\example\config\*.java

 

 

대부분의 context-**. xml 파일명들이 EgovConfig**. java 파일들로 변경되었습니다.

 

db 설정 부분

기존 파일 : context-datasource.xml

변경 파일 : EgovConfigDatasource.java

기존 연결 되어 있던 메모리 db(EmbeddedDatabaseType.HSQL)를 오라클로 연결하도록 변경하였습니다.

package egovframework.example.config;

import javax.sql.DataSource;

import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;

@Configuration
public class EgovConfigDatasource {

	/*
	 * @Bean(name="dataSource") public DataSource dataSource() {
	 * EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); return
	 * builder.setType(EmbeddedDatabaseType.HSQL).addScript(
	 * "classpath:/db/sampledb.sql").build(); }
	 */

	@Bean(name="dataSource")
	public DataSource dataSource() {
		return DataSourceBuilder
				.create()
				.username("hoho")
				.password("hoho")
				.url("jdbc:oracle:thin:@127.0.0.1:1521:orcl")
				.driverClassName("oracle.jdbc.driver.OracleDriver")
				.build();
	}
}

 

 

오라클 db 설정 후 웹페이지를 실행해 보니 아래와 같은 에러가 발생했습니다.

--- The error occurred while applying a parameter map.  
--- Check the sampleDAO.selectSampleList-InlineParameterMap.  
--- Check the statement (query failed).  
--- Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다

 

아래 파일을 확인해 보았습니다.

sqlMap id : sampleDAO.selectSampleList

경로 : \src\main\resources\egovframework\sqlmap\example\sample\EgovSample_Sample_SQL.xml

 

공부를 너무 안 해서 아래 쿼리문은 처음 보았습니다.

매번 사용하던 방식으로 사용하다 보니

인터넷 검색을 하다 보니 oracle 12 이상부터 추가된 내용이었습니다.

oracle-00933 에러 발생원인은 문법이 틀려서였습니다.

-- 오라클에서 에러 발생
LIMIT #recordCountPerPage# OFFSET #firstIndex#

-- 오라클 문법
OFFSET '시작' ROWS FETCH NEXT '출력 row 수' ROWS ONLY;
ex) OFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY;

 

반응형

'db > oracle' 카테고리의 다른 글

windows oracle on/off 자동 실행  (0) 2024.06.06
oracle limit offset test query  (0) 2024.02.10
oracle random name  (2) 2024.02.09
oracle xml parsing  (0) 2024.02.06
oracle 계정 생성 및 링크연결  (0) 2023.10.25