로그캣 입니다.
W/Database: Copy Success
E/SQLiteLog: (1) no such table: tblWord
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.tistory.kimdogul.pldictionary, PID: 16535
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tistory.kimdogul.pldictionary/com.tistory.kimdogul.pldictionary.MainActivity}: android.database.sqlite.SQLiteException: no such table: tblWord (code 1 SQLITE_ERROR): , while compiling: Select * From tblWord Where word Like '%'
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
등등....
Caused by: android.database.sqlite.SQLiteException: no such table: tblWord (code 1 SQLITE_ERROR): , while compiling: Select * From tblWord Where word Like '%'
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:903)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:514)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:46)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1408)
at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1347)
at com.tistory.kimdogul.pldictionary.utils.DatabaseHelper.getListWord(DatabaseHelper.java:55)
at com.tistory.kimdogul.pldictionary.MainActivity.onCreate(MainActivity.java:51)
등등
이런식으로뜨는데, 분명 asset에 추가한 db는 제대로 테이블도 tblWord라고 생성되어있고
내부에 칼럼도 1 id (integer) 2. word(text) 3.definition(text)로 잘 배정되어있습니다.
그리고 쿼리문 부분 도저히 어떻게 수정해야될지 모르겠습니다..제발 도와주세요.
하단의 Cursor cursor=mDatabase.rawQuery("Select * From tblWord Where word Like '%'",args);
이부분입니다.
package com.tistory.kimdogul.pldictionary.utils;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
import java.util.List;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DBNAME="dictionary.sqlite";
public static final String DBLOCATION="/data/data/com.tistory.kimdogul.pldictionary/databases/";
private Context mContext;
private SQLiteDatabase mDatabase;
public DatabaseHelper(Context context){
super(context, DBLOCATION+DBNAME,null,1);
this.mContext=context;
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void openDatabse(){
String dbPath=mContext.getDatabasePath(DBNAME).getPath();
if(mDatabase!=null && mDatabase.isOpen()){
return;
}
mDatabase=SQLiteDatabase.openDatabase(dbPath,null,SQLiteDatabase.OPEN_READWRITE);
}
public void closeDatabase(){
if(mDatabase !=null){
mDatabase.close();
}
}
public List<DictionaryModel> getListWord(String wordSearch){
DictionaryModel dictionaryModel=null;
List<DictionaryModel> dictionaryModelList=new ArrayList<>();
openDatabse();
String[] args={"%"+wordSearch+"%"};
Cursor cursor=mDatabase.rawQuery("Select * From tblWord Where word Like '%'",args);
cursor.moveToFirst();
while (!cursor.isAfterLast()){
dictionaryModel=new DictionaryModel(cursor.getString(0),cursor.getString(1),cursor.getString(2));
dictionaryModelList.add(dictionaryModel);
cursor.moveToNext();
}
cursor.close();
closeDatabase();
return dictionaryModelList;
}
}