私はAndroidでSQLiteデータベースの実装が新しくなったので、何か見落としたかもしれません。私はSQLiteOpenHelper
を拡張するクラスでSQLiteのデータベース作成しました:SQLiteデータベースがファイルシステムで見つからないのはなぜですか?
public class DB extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "/mnt/sdcard/db/db.sqlite";
private static final int DATABASE_VERSION = 1;
private static final String TEXT_TYPE = " TEXT";
private static final String COMMA_SEP = ",";
public static final String TABLE_EXTRA_DATA = "extra_data";
public static final String KEY_ID = "id";
public static final String KEY_LINKED_ORDER_NUMBER = "linked_order_number";
public static final String KEY_DATE = "date";
public static final String KEY_ARRIVAL_TIME = "arrival_time";
public static final String KEY_ARRIVAL_IMPORTANT = "arrival_important";
public static final String KEY_CLIENT_NAME = "client_name";
public static final String CREATE_TABLE_EXTRA_DATA = "CREATE TABLE IF NOT EXISTS " +
TABLE_EXTRA_DATA + " (" +
KEY_ID + " INTEGER PRIMARY KEY," +
KEY_LINKED_ORDER_NUMBER + TEXT_TYPE + COMMA_SEP +
KEY_DATE + TEXT_TYPE + COMMA_SEP +
KEY_ARRIVAL_TIME + TEXT_TYPE + COMMA_SEP +
KEY_ARRIVAL_IMPORTANT + TEXT_TYPE + COMMA_SEP +
KEY_CLIENT_NAME + TEXT_TYPE + ")";
public static final String DELETE_TABLE = "DROP TABLE IF EXISTS " + TABLE_EXTRA_DATA;
private final Activity _context;
public DB(Activity context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
_context = context;
}
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(CREATE_TABLE_EXTRA_DATA);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(DELETE_TABLE);
onCreate(db);
}
@Override
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onUpgrade(db, oldVersion, newVersion);
}
}
をそして私は、データベースの操作を使用するようにデータベースのヘルパークラスを持っている:
public class DbHelper {
private DB _dbHelper;
private SQLiteDatabase _db;
public DbHelper(Activity context)
{
_dbHelper = new DB(context);
_db = _dbHelper.getWritableDatabase();
}
public void CloseDb() {
if (_db != null)
{
if (_db.isOpen())
_db.close();
}
}
public void SaveExtraData() {
ContentValues cv = new ContentValues();
cv.put(_dbHelper.KEY_ID,"test");
cv.put(_dbHelper.KEY_DATE,"test");
cv.put(_dbHelper.KEY_ARRIVAL_TIME,"test");
cv.put(_dbHelper.KEY_ARRIVAL_IMPORTANT,"test");
cv.put(_dbHelper.KEY_CLIENT_NAME,"test");
_db.insert(_dbHelper.TABLE_EXTRA_DATA, null, cv);
}
}
データベースとdatabaseHelperを開始するとき、私はエラーを取得していません
if(_db == null) {
_db = new DbHelper(this);
}
try {
_db.SaveExtraData();
_db.CloseDb();
}
catch (Exception e) {
}
しかし、私のデバイスのファイルシステム上の任意の場所にデータベースが見つかりません。私はアンドロイドバージョン4.4.3でモトローラTC55でそれをテストしています
何か助けや提案をいただければ幸いです。前もって感謝します!