public class DatabaseAccess {
private SQLiteOpenHelper openHelper;
private SQLiteDatabase db;
private static DatabaseAccess instance;
public static String TABLENAME = "bible2+1";
Cursor c = null;
ArrayList<String> book;
static String T = "log";
private DatabaseAccess (Context context){
Log.d(T, "3");
this.openHelper = new DatabaseOpenHelper(context);
}
public static DatabaseAccess getInstance(Context context){
if(instance == null){
Log.d(T, "2");
instance = new DatabaseAccess(context);
}
return instance;
}
//open bible database
//read bible database
public void read(){
Log.d(T, "8");
this.db = openHelper.getReadableDatabase();
}
//close bible database
public void close() {
if (db != null) {
this.db.close();
}
}
//query for address by passing name
public ArrayList<String> getBook() {
String compare = null;
c = db.rawQuery("select * from "+TABLENAME ,null);
while(c.moveToNext()){
if(!compare.equals(c.getString(7)))
compare = c.getString(7);
book.add(compare);
}
return book;
}
}
package com.example.chahyunbin.cwapp;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
public class DatabaseOpenHelper extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "bible2+1.sql";
private static final int DATABASE_VERSTION = 1;
String T = "log";
public DatabaseOpenHelper(Context context) {
super(context, DATABASE_NAME,null, DATABASE_VERSTION);
Log.d(T, "4 ");
}
}
public class Bible extends Activity{
Context mContext;
DatabaseAccess dbAccess;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bible);
String T = "log";
ArrayList<String> book,chapter, verse;
chapter = new ArrayList<String>();
verse = new ArrayList<String>();
Log.d(T,"1");
dbAccess= DatabaseAccess.getInstance(getApplicationContext());
Log.d(T,"5");
Log.d(T, "7");
dbAccess.read();
Log.d(T, "9");
book = dbAccess.getBook();
Spinner bibleSpinner = (Spinner)findViewById(R.id.bibleSpinner);
Spinner chapterSpinner = (Spinner)findViewById(R.id.chepterSpinner);
Spinner verseSpinner = (Spinner)findViewById(R.id.verseSpinner);
ArrayAdapter<String> bibleadapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,book);
ArrayAdapter<String> chapteradapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,chapter);
ArrayAdapter<String> verseadapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, verse);
bibleadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
chapteradapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
verseadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
bibleSpinner.setAdapter(bibleadapter);
chapterSpinner.setAdapter(chapteradapter);
verseSpinner.setAdapter(verseadapter);
dbAccess.close();
}
}
-- phpMyAdmin SQL Dump
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
-- 데이터베이스: `q`
--
-- --------------------------------------------------------
--
-- 테이블 구조 `bible2`
--
CREATE TABLE IF NOT EXISTS `bible2` (
`idx` int(11) NOT NULL AUTO_INCREMENT,
`cate` int(11) NOT NULL,
`book` int(11) NOT NULL,
`chapter` int(11) NOT NULL,
`paragraph` int(11) NOT NULL,
`sentence` tinytext NOT NULL,
`testament` varchar(10) NOT NULL,
`long_label` varchar(30) NOT NULL,
`short_label` varchar(10) NOT NULL,
PRIMARY KEY (`idx`),
KEY `idx_sequense` (`book`,`chapter`,`paragraph`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=31139 ;
--
-- 테이블의 덤프 데이터 `bible2`
--
INSERT INTO `bible2` (`idx`, `cate`, `book`, `chapter`, `paragraph`, `sentence`, `testament`, `long_label`, `short_label`) VALUES
(1, 1, 1, 1, 1, '<천지 창조> 태초에 하나님이 천지를 창조하시니라', '구', '창세기', '창'),
(2, 1, 1, 1, 2, '땅이 혼돈하고 공허하며 흑암이 깊음 위에 있고 하나님의 영은 수면 위에 운행하시니라', '구', '창세기', '창'),
(3, 1, 1, 1, 3, '하나님이 이르시되 빛이 있으라 하시니 빛이 있었고', '구', '창세기', '창'),
(299, 1, 1, 11, 32, '데라는 나이가 이백오 세가 되어 하란에서 죽었더라', '구', '창세기', '창'),
(300, 1, 1, 12, 1, '<여호와께서 아브람에게 이르시다> 여호와께서 아브람에게 이르시되 너는 너의 고향과 친척과 아버지의 집을 떠나 내가 네게 보여 줄 땅으로 가라', '구', '창세기', '창'),
(301, 1, 1, 12, 2, '내가 너로 큰 민족을 이루고 네게 복을 주어 네 이름을 창대하게 하리니 너는 복이 될지라', '구', '창세기', '창'),
(302, 1, 1, 12, 3, '너를 축복하는 자에게는 내가 복을 내리고 너를 저주하는 자에게는 내가 저주하리니 땅의 모든 족속이 너로 말미암아 복을 얻을 것이라 하신지라', '구', '창세기', '창');
성경앱을 만들어 보려고 하는데
맨 아래가 인터넷으로 다운받은 데이터 베이스고 그 위가 코드들인데
android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 1294): Could not open database
#################################################################
Error Code : 1294 (SQLITE_CANTOPEN_ENOENT)
Caused By : Specified directory or database file does not exist.
(unknown error (code 1294): Could not open database)
#################################################################
at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:272)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:213)
at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:699)
이런 에러가 뜨는데 제가 뭘 잘못한건가요.... 정말 모르겠네요.....