안드로이드 개발 질문/답변
(글 수 45,052)
안녕하십니까. 날이 무지 덥네요~
다름이 아니라, 디비를 쓰다가 모르는 부분이 있어 질문 올립니다.
SQLite 에 접근할 때 SQLiteDatabase객체를 open() ( openOrCreateDatabase() ) 해서 쓰고, close()로 닫잖아요?
이 때, 데이터를 조작한다면,
1. 데이터의 조작이 끝난 순간에 바로 close() 를 해 줘야 하나요?
2. 아니면 전체 프로그램이 종료 될 때 db객체를 close() 하는 게 나은가요?
또한 , 같은 논리로
11. Cursor로 데이터의 조작이 끝난 순간에 바로 close() 를 해 줘야 하나요?
12. 아니면 해당 Curser가 완전히 사용하지 않게 된 시점에 close() 하는 게 나은가요?
1번일 경우는 DB 에 데이터를 접근할 때 마다 open() / close()를 반복할 테고...
2번일 경우는 한 번만 open() / close() 할 거 "같은" 데, 정확하게는 모르겠습니다. OS에서 처리해 주는 부분이 있는지요.
cursor도 마찬가지이구요.
현재는 SQLiteDatabase 에 대해서는 open()/ close() 를 한 번만 해 주구요. Cursor 객체에 대해서는 query가 한 번 끝날때마다 close() 를 하도록 만들었습니다.
즉, 10개의 쿼리를 실행한다면, Cursor도 10번 open/close() 되는 거죠.
여려분들의 고견 부탁드립니다.
좋은 밤 되시기 바랍니다. ^_^)/
다름이 아니라, 디비를 쓰다가 모르는 부분이 있어 질문 올립니다.
SQLite 에 접근할 때 SQLiteDatabase객체를 open() ( openOrCreateDatabase() ) 해서 쓰고, close()로 닫잖아요?
이 때, 데이터를 조작한다면,
1. 데이터의 조작이 끝난 순간에 바로 close() 를 해 줘야 하나요?
2. 아니면 전체 프로그램이 종료 될 때 db객체를 close() 하는 게 나은가요?
또한 , 같은 논리로
11. Cursor로 데이터의 조작이 끝난 순간에 바로 close() 를 해 줘야 하나요?
12. 아니면 해당 Curser가 완전히 사용하지 않게 된 시점에 close() 하는 게 나은가요?
1번일 경우는 DB 에 데이터를 접근할 때 마다 open() / close()를 반복할 테고...
2번일 경우는 한 번만 open() / close() 할 거 "같은" 데, 정확하게는 모르겠습니다. OS에서 처리해 주는 부분이 있는지요.
cursor도 마찬가지이구요.
현재는 SQLiteDatabase 에 대해서는 open()/ close() 를 한 번만 해 주구요. Cursor 객체에 대해서는 query가 한 번 끝날때마다 close() 를 하도록 만들었습니다.
즉, 10개의 쿼리를 실행한다면, Cursor도 10번 open/close() 되는 거죠.
여려분들의 고견 부탁드립니다.
좋은 밤 되시기 바랍니다. ^_^)/
여름철 메뚜기가 마냥 부러운 1人
2. 아니면 전체 프로그램이 종료 될 때 db객체를 close() 하는 게 나은가요?