安卓数据库的交换ID



如果我想交换我的Android数据库的内容,该怎么办,如下所示:

以前

1     hello    world
2     Android  Nougat

1     Android  Nougat
2     hello    world

您不需要更改数据库中的位置。您需要向数据库添加额外的 int 值(而不是 id(。并根据新位置更改此值。对于第一个对象,您将其设为 2;一秒钟 - 1。当您从数据库中检索数据时,您只需根据此值对其进行排序。

String orderBy =  "POSITION ASC";
Cursor cursor = database.query(TABLE_NAME, logTableColumns, null, null,
     null, null, orderBy);
    public class QueueDatabase extends SQLiteOpenHelper {
    public QueueDatabase(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    public static final int DATABASE_VERSION = 1;
    // Database Name
    public static final String DATABASE_NAME = "queue.sqlite";
    //Table names
    public static final String TABLE_QUEUE = "Queue";
    public static final String KEY_ID = "id";
    public static final String KEY_SNAME  = "key_sname";
    public static final String KEY_ANAME  = "key_aname";
    public static final String KEY_URL = "key_url";
    public static final String KEY_ORDER = "key_order";
    public static final String CREATE_TABLE_QUEUE= "CREATE TABLE IF NOT EXISTS "
            + TABLE_QUEUE
            + "("
            + KEY_ID
            + " INTEGER PRIMARY KEY AUTOINCREMENT,"
            + KEY_SNAME
            + " TEXT,"
            + KEY_ANAME
            + " TEXT,"
            + KEY_URL
            + " TEXT,"
            + KEY_ORDER
            + " TEXT "
            +")";

    public long insertQueue(ArrayList<Music> mTaskArr)
    {
        long row_id = 0;
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        for(int i = 0;i<mTaskArr.size() ;i++) {
            values.put(KEY_SNAME, mTaskArr.get(i).getTitle());
            values.put(KEY_ANAME, mTaskArr.get(i).getArtist());
            values.put(KEY_URL, mTaskArr.get(i).getUrl());
                    row_id = db.insert(TABLE_QUEUE, null, values);
        }
        db.close();

        return row_id;
    }
    public void updateOrder(long rowID, int newPos) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put(KEY_ORDER, newPos);
        db.update(TABLE_QUEUE, cv, KEY_ID + "=" + rowID, null);
    }
    public boolean updateQueue (Integer id, String S, String A, String U) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(KEY_SNAME,S);
        contentValues.put(KEY_ANAME,A);
        contentValues.put(KEY_URL,U);
        db.update(TABLE_QUEUE, contentValues, "id = ? ", new String[] { Integer.toString(id) } );
        return true;
    }
    public void dropTable() {
        SQLiteDatabase db = this.getWritableDatabase();
        String sql = "drop table " + TABLE_QUEUE;
        try {
            db.execSQL(sql);
        } catch (SQLException e) {
            System.out.println(e);
        }
    }
    public ArrayList<Music> getAllQueue() {
        ArrayList<Music> ar = new ArrayList<Music>();
        String selectQuery = "SELECT * FROM " + TABLE_QUEUE;
        //Log.d("QUERY",""+selectQuery);
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor c = db.rawQuery(selectQuery, null);
        if (c.moveToFirst()) {
            do {
                Music r = new Music();
                r.setId(c.getInt(c.getColumnIndex(KEY_ID)));
                r.setTitle( c.getString(c.getColumnIndex(KEY_SNAME)));
                r.setArtist( c.getString(c.getColumnIndex(KEY_ANAME)));
                r.setUrl(c.getString(c.getColumnIndex(KEY_URL)));
                ar.add(r);
            } while (c.moveToNext());
        }
        db.close();
        return ar;
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_TABLE_QUEUE);
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        onCreate(db);
    }

    public void arrange() {
        SQLiteDatabase db = this.getWritableDatabase();
        String[] rank = new String[]{ QueueDatabase.KEY_ID };
        Cursor c = db.query(QueueDatabase.TABLE_QUEUE, rank, null, null, null, null, QueueDatabase.KEY_ORDER+" ASC");
    }
}

这是您在数据库中输入数据的方式:

 q.add(new Music(T, U, A));
qd.insertQueue(q);

最新更新