본문 바로가기

개발중/sql

mybatis / 존재하지 않는 테이블명 에러 잡기

728x90
반응형

 


java.sql.SQLSyntaxErrorException:

Table 'BINSOO_TABLE_1103' doesn't exist

 

지금 하고 있는 프로젝트 중에서 관리하는 데이터가 너무 많아서

유동적으로 SEQ 마다 테이블이 생성되는 구조를 가진 프로젝트를 짜고 있었다.

 

SELECT * FROM BINSOO_TABLE_#{SEQ} 이렇게 연결이 되어야 하는데

만약에 존재하지 않는 테이블명이라면 ?

 

물론 위에 처럼 로직을 세우려면 꼭 SEQ 마다 TABLE 이 존재해야겠지만

정말 혹시나 하는 상황에는 아래처럼 에러 메세지를 이용하는 방법도 존재한다.

 

public List<BinsooVo> selectBinsooData( BinsooVo vo ) {
	
	List<BinsooVo> voList = null;
	
	try {
		voList = SqlSession.selectList( "selectBinsooData", vo);
	} catch (Exception e) {
		
		// 존재 하지 않는 테이블 명이 있을 경우를 대비해서 만든 로직.
		String errorMsg = e.toString();
        
		if( errorMsg.contains("Table") && errorMsg.contains("doesn't exist") ) {
			throw new Exception(); 
		}
	}
	
	return voList;
}

 

추천하는 방법은 아니지만 SQLSyntaxErrorException 에서

테이블명이 없을 때 발생하는 에러를 딱히 지원해주지 않기 때문이다.

 


 

728x90
반응형

'개발중 > sql' 카테고리의 다른 글

MYSQL 설치 삽질 기록  (0) 2021.07.04
MY SQL ERROR - my.ini 위치 / 수정  (0) 2021.07.04
mysql 권한이 있는지 확인하는 경우  (0) 2021.06.22
My sql Like 여러개 : )  (0) 2021.05.27
SQL 삽질 기록 : (  (0) 2021.05.20