데이터베이스/아이바티스(iBatis) 9

UPDATE 시에 ORA-00911: 문자가 부적합합니다 에러 발생시

ORA-00911: 문자가 부적합합니다 대개는 문자를 ‘로 둘러싸지 않았거나 해서 나는 에러지만, iBatis 계열 (sqlmap) 등을 사용할 때 위와 같은 에러가 난다면,혹은 아무리 봐도 SQL 문구 자체에는 이상이 없을 경우에는!! SQL 맨 마지막에 ; (세미콜론)을 붙이지 않았나 확인해 봐야한다. 거의 100%..

[iBatis] batch 사용방법 및 사용시 유의사항

iBatis 에서 반복적인 대량의 insert/update시 속도 향상을 위해 batch를 사용하여 insert/update를 한다. iBatis에서는 Java에 있는 batch 방법만을 사용할 수 있다. 하지만 수천 수만건의 데이터를 한번에 executeBatch() 해준다면 메모리를 많이 사용하게 되어 메모리 부족현상이 발생되어 에러가 발생한다.(배치에 등록된 대량의 레코드를 한번에 executeBatch 하게되니 Exception 발생) 그래서 1000건 혹은 10000건 단위를 한 묶음으로 배치 처리해주는 것이 효율적이다. public void updateBatchTest() throws Exception { long start = System.currentTimeMillis(); Map para..

iBatis 에서 select key 를 이용하여 키 값 가져오기

프로그램을 짜다보면 첫번째 내용을 인서트 한 이후 그 키값을 가지고 두번째 내용을 인서트를 해야 하는 경우가 종종 있다. 이럴경우 iBatis 에서 select key 를 이용하여 그 값을 추출 해 낼 수 있다. 1. xml 설정 부분에서 다음과 같은 방법으로 구현한다. SELECT NVL(MAX(BOARD_ID), 0) + 1 FROM BOARD INSERT INTO BOARD ( .... 2. dao 단에서 다음과 같은 방법으로 키 값을 받는다. /** * 게시물 작성 * * @param Board * @throws Exception */ public String insertArticle(Board board) throws Exception { String result = (String) insert..