sqlite + mybatis 사용 시 databases is locked
java/라이브러리
2016. 2. 16. 21:18
@SuppressWarnings("unchecked") public Corp InsertIfNotExists(Corp input) { System.out.println("InsertIfNotExists"); Corp result; init(); session = sqlMapper.openSession(); result = (Corp) session.selectOne(objectName+"Mapper.findByCode", input.getCode()); System.out.println(input.getCIK()); if(result == null){ System.out.println(result); } else { System.out.println(result.getCIK()); } if (result == null) { // 주석된 부분이 문제의 부분 // session = sqlMapper.openSession(); session.insert(objectName + "Mapper.create", input); } session.close(); return result; }
실수였다.
에러 때문에 한참 검색해봤는데 SQLITE는 커넥션을 하나만 허용하는 모양이다. ( 기본값일지도 )
주석된 부분이 에러인데 sqlMapper.openSession() 실행시 내부적으로는 커넥션이 열리는데
1개 밖에 못여는 sqlite를 쓰면서 2개를 열려고 해서 에러가 난 모양이다.
jdbc로 Connection을 쓸때는 쓰고 꼭 닫아줘야된다고 생각을 하는데
눈에 안익은 openSession() 함수를 복붙해서 쓰다보니 그렇게 된 것 같다.
여튼 완료.
'java > 라이브러리' 카테고리의 다른 글
Mybatis 설정 파일 예제 (0) | 2016.02.16 |
---|