2024.02.07 - [dev/egov] - spring boot 시작 egov 4.1
위 글 작성 후 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 |