从sqlite数据库android

时间:2017-12-21 19:33:47

标签: android sqlite

我在Android应用程序的sql数据库中存储歌曲信息(名称,艺术家姓名,持续时间等)。我能够毫无问题地将数据提供给数据库。所以,如果我播放2首歌曲,首先是歌曲A,之后是歌曲B.这两个都按照播放顺序添加到数据库中。第一行 - 歌曲A,第二行 - 歌曲B.我想要的是,我想以相反的方向检索数据。我的意思是,当我显示歌曲时,歌曲B应首先出现,然后是歌曲A.我知道我必须使用顺序,但我无法弄清楚如何。

代码:

检索代码:

  public ArrayList<SongInfoModel> getRecentlyPlayed(){

    ArrayList<SongInfoModel> rpList = new ArrayList<>();
    String selectQuery  = "SELECT * FROM " + TABLE_NAME ;
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery,null);
    if(cursor.moveToFirst()){

        do{

            long id = cursor.getLong(0);
            String SongName = cursor.getString(1);
            String artistName = cursor.getString(2);
            long dur = cursor.getLong(3);
            String Art = cursor.getString(4);

            SongInfoModel sh = new SongInfoModel(id,SongName,artistName,dur,null,Art);

            rpList.add(sh);
        }while (cursor.moveToNext());
    }

    return rpList;
 }

创建表格的代码:

@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {

    String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME+ "("
            + KEY_ID + " INTEGER PRIMARY KEY,"
            + KEY_NAME + " TEXT,"
            + KEY_ARTIST + " TEXT,"
            + KEY_DURATION + " INTEGER,"
            + KEY_ART + " TEXT"
            + ");";

    sqLiteDatabase.execSQL(CREATE_TABLE);

}

1 个答案:

答案 0 :(得分:0)

您也可以在每行中插入一个计数器,只需按计数器的顺序选择它们。