본문 바로가기

개발/Exception

(5)
[ Oracle Exception ] java.sql.SQLException: ORA-00947: not enough values ( 값의 수가 충분하지 않습니다 ) java.sql.SQLException: ORA-00947 값의 수가 충분하지 않습니다. Insert 쿼리 동작중 아래와 같이 컬럼과 값이 수가 맞지않아 발생하는 에러이다. Insert into sample ( column1,column2,column3 ) values ( value1,value2 ) 쉽게 수정이 가능한 에러이다.
[Ibatis Exception] executeQueryForObject returned too many results executeQueryForObject returned too many results 위 에러는 String , Int 와 같이 기본자료형을 가져오기 위해 queryForObject 를 사용하였는데 쿼리결과가 여러 row 일때 발생하는 문제이다. 따라서 쿼리를 확인하여 여러 row 를 한번에 출력할때는 queryForList 가져오려는 데이터가 하나의 결과값일때는 queryForObject 를 사용하여 상황에맞게 함수를 호출하여 사용하도록 한다.
[ Oracle Exception ] java.sql.SQLException: ORA-01400: Null java.sql.SQLException: ORA-01400 위 에러는 Sql Quiry 를 사용해서 Table Insert 를 하려 할때 Null 이 입력되지 않는 필드에 Null를 입력하려 하기때문에 생기는 에러이다. 해결방법은 해당 Table 의 구조를 보고 Pk 또는 Null 값이 입력되지는 않는 필드에 데이터가 어떻게 들어가는지 확인하면 긍방찾을수 있다. 쿼리를 직접 출력하여 확인하던지 아니면 쿼리 수행전 값을 System.out.pritln() 으로 찍어보자
[Ibatis Exception] There is no statement named There is no statement named 위 에러는 호출한 SQL id 와 실제 xml 에 적혀 있는 id 가 달라서 발생한다.주로 개발자들의 오타에서 발생하며 자세하 보면 금방찾을수있다. .xml file ... .java file final private String NAME_SPACE = "sample.sample1.sample1_1"; dao.update(NAME_SPACE+".updateSample1",item); 대부분 위와 같이 매핑이 잘 되어있는지 확인을 하면 문제를 해결할수 있다.
[JAVA/자바 Exception] java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map 위 에러는 캐스팅 에러로 String 데이터를 강제로 Map 으로 변환하려 할때 나는 에러이다. 주로 개발자들 실수로 인해 발생하며 나의 경우에는 ibatis 를 사용하면서 파라미터 전달할때는 String 변수로 전달하고 받는곳에서는 parameterClass="map" 와 같이 받아서 나는 문제였다. 캐스팅에러의 경우에는 비교적 찾기 쉬우므로 천천히 찾아보면 보일것이다.