Я пытаюсь получить базу данных SQLite для работы на Android и задать несколько вопросов!Получение SQLite, работающего в Android и доступ к данным
Я поместил следующее в метод onCreate
моего класса базы данных, который расширяет SQLiteOpenHelper
.
db.execSQL("CREATE TABLE IF NOT EXISTS `challenge` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `date` TEXT)");
У меня есть следующий метод.
public void addChallenge(){
SQLiteDatabase db = this.getWritableDatabase();
Date cDate = new Date();
String fDate = new SimpleDateFormat("yyyy-MM-dd").format(cDate);
ContentValues values = new ContentValues();
values.put("date", fDate);
db.insert("challenge", null, values);
}
И следующее должно быть выполнено выше, чем указано выше.
public int getChallengeId(){
SQLiteDatabase db = this.getWritableDatabase();
Date cDate = new Date();
String fDate = new SimpleDateFormat("yyyy-MM-dd").format(cDate);
String countQuery = "SELECT id FROM challenge WHERE date = " + fDate;
Cursor cursor = db.rawQuery(countQuery, null);
int challenge_id = 0;
if(cursor.moveToFirst()){
challenge_id = cursor.getInt(0);
}
return challenge_id;
}
Моя проблема заключается в том, что вызов ID возвращается в 0.
Поэтому у меня есть несколько вопросов.
- Где находится база данных, хранящаяся по умолчанию в Android?
- Я правильно звоню?
код я использую, чтобы получить доступ к выше методов заключается в следующем
Database db_add = new Database(context);
db_add.addChallenge();
db_add.close();
Database db_get = new Database(context);
challenge_id = db_get.getChallengeId();
db_get.close();
Любые идеи? Спасибо.
Я не могу увидеть вашу проблему прямо сейчас, но я советую вам использовать библиотеку отображения ORM вместо того чтобы работать с простым SQL – Nickolaus