Сохранение электронной почты из первой таблицы во вторую таблицу

#java #sqlite #android-sqlite

#java #sqlite #android-sqlite

Вопрос:

Я создаю приложение. Мне нужна электронная почта существующего пользователя, которая уже сохранена в первой таблице, и сохраните ее во второй таблице. Какие запросы или функции мне нужны для достижения этого? Есть предложения?

Комментарии:

1. Вам просто нужно получить пользователя, а затем создать функцию вставки, чтобы повторно вставить его в другую таблицу.

Ответ №1:

Сначала вам нужно получить электронную почту пользователя, передав действительный идентификатор строки:

 public Cursor getRecord(long id) throws SQLException {
    Cursor cursor = this.database.query(true, databaseTable, new String[] {columnId, columnName, columnEmail}, columnId   "="   id, null, null, null, null, null);

    if (cursor != null) {
        cursor.moveToFirst();
    }
    return cursor;
}
 

Пожалуйста, обратите внимание, что у вас могут быть разные столбцы, поэтому измените String[] массив на указанные вами столбцы. Теперь мы можем создать другую функцию для сохранения этой электронной почты в другой таблице следующим образом:

 public long insertExistingUser(String name, String email) {
    ContentValues contentValues = new ContentValues();

    contentValues.put(columnName, name);
    contentValues.put(columnEmail, email);

    return this.database.insert(otherDatabaseTable, null, contentValues);
}
 

Это приведет к вставке информации другого пользователя в другую таблицу. Для того, чтобы это работало в вашем приложении:

 DatabaseAdapter db = new DatabaseAdapter(this);

db.open();

Cursor cursor = db.getRecord(current_user_id);

if (db.insertExistingUser(cursor.getString(1), cursor.getString(2)) > 0)
    Toast.makeText(this, "Old user's info was inserted!", Toast.LENGTH_SHORT).show();

db.close();
 

cursor.getString(1) Требуется число, указывающее, какой это столбец. Обычно 0 это столбец id, который вы используете для получения электронной почты пользователя.