마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드에서 db불러오는 방법

0 추천

안녕하세요. 안드로이드에서 데이터베이스를 사용할떄 sqlite를 사용한다는건 알아서 설치하고 파이어폭스에서 sqlite매니져로 간단하게 DB데이터도 하나 만들어서 mygame.sqlite라는 파일로 저장을 했습니다.

책보면서 만들어놓은 db를 불러서 select해보려고 하는데요...

실행해보니 에러가나고 try로 메세지보니까 테이블을 찾을 수 없다고 하더군요.

다시한번 책을 잘 보니까...책은 안드로이드 내에서 db를 생성하는것부터 진행하고 있더라구요...전 select만 할거라서 간과하고 있었는데...DBHelper에 데이터베이스 이름을 적어놓기는 했는데...생각해보니까 얘가 DB파일을 불러올만한 그런부분이 없더군요 ; 애초에 DB참조하는걸 지정을 안해줬으니 테이블이 없다고 하는 것 같은데...책에는 만들어놓은 DB파일을 어디에 넣고 참조를 해야하는지 안나왔네요 ㅠㅠ 

mygame.sqlite파일을 안드로이드 프로젝트 어디에 집어넣어야 소스에서 db파일을 참조할 수 있을까요...

소스도 적어놓고 가겠습니다. 도움주시면 감사하겠습니다 __

helper = new WordDBHelper(this);
SQLiteDatabase db;
db = helper.getReadableDatabase();
Cursor cursor;
cursor = db.rawQuery("SELECT Name FROM monster", null);
String result = "";
while(cursor.moveToNext()){
String name = cursor.getString(1);
result = name;
}
textview.setText(result);
cursor.close();
helper.close();
}
catch(Exception ee){textview.setText(ee.getMessage());}
}
 
}
class WordDBHelper extends SQLiteOpenHelper{
public WordDBHelper(Context context){
super(context, "mygame.sqlite", null, 1);
}
gs낭천 (340 포인트) 님이 2014년 7월 2일 질문

1개의 답변

0 추천
sqlite 파일이 내부 data 파티션에 있는 경우만 읽을 수 있는 걸로 압니다. ( 외부 라이브러리를 제외 ) https://gist.github.com/donaldlittlepie/1271795 참고하세요.
북극토끼 (420 포인트) 님이 2014년 7월 3일 답변
답변 감사합니다.내부 data에 db파일을 둬야한다는거는...ddms인가 거기서 단말기나 에뮬레이터의 data폴더에 넣으면 된다는 말씀 같은데..그렇게 넣어두면 그 db를 개발하는 저야 참고할 수 있겠지만 마켓에 등록하고 그걸 다운받는 사람들은 그 db를 참고할 수 없지않나요? 레벨업에 필요한 경험치나 주인공의 레벨상태 몬스터정보 이런 기본 데이터들을 db로 만들어서 같이배포하고 게임에선 필요한 부분에서 select하고 update만할 수 있도록 하고싶은데 의외의 부분에서 막히네요 ㅎ...
아뇨~
DDMS가 아니라 Resource(Assets) 에 DB를 첨부하고, 그 DB를 data로 복사해주는 코드가 바로 링크에 있습니다.
...