Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 99
#1

Update базы SQLiteDatabase - Android

14.05.2016, 15:13. Просмотров 95. Ответов 0
Метки нет (Все метки)

Как правильно работать с функцией onUpgrade?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
 
public class DatabaseConnector {
    // имя базы данных
    private static final String DATABASE_NAME = "UserContacts";
    private SQLiteDatabase database;
    private DatabaseOpenHelper databaseOpenHelper;
 
    // конструктор
    public DatabaseConnector(Context context) {
        // создание нового объекта DatabaseOpenHelper
        databaseOpenHelper = new DatabaseOpenHelper(context, DATABASE_NAME,
                null, 1);
    }
 
    // открытие подключения к базе данных
    public void open() throws SQLException {
        // создание или открытие базы данных для чтения/записи
        database = databaseOpenHelper.getWritableDatabase();
    }
 
    // закрытие подключения к базе данных
    public void close() {
        if (database != null)
            database.close(); // закрытие подключения к базе данных
    }
 
    // вставка нового контакта в базу данных
    public void insertContact(String name, String email, String phone,
            String state, String city) {
        ContentValues newContact = new ContentValues();
        newContact.put("name", name);
        newContact.put("email", email);
        newContact.put("phone", phone);
        newContact.put("street", state);
        newContact.put("city", city);
 
        open(); // открыть базу данных
        database.insert("contacts", null, newContact);
        close(); // закрыть базу данных
    }
 
    // вставка нового контакта в базу данных
    public void updateContact(long id, String name, String email, String phone,
            String state, String city) {
        ContentValues editContact = new ContentValues();
        editContact.put("name", name);
        editContact.put("email", email);
        editContact.put("phone", phone);
        editContact.put("street", state);
        editContact.put("city", city);
 
        open(); // открыть базу данных
        database.update("contacts", editContact, "_id=" + id, null);
        close(); // закрыть базу данных
    }
 
    // возвращение в базу данных объекта Cursor вместе со всей
    // информацией о контакте
    public Cursor getAllContacts() {
        return database.query("contacts", new String[] { "_id", "name" }, null,
                null, null, null, "name");
    }
 
    // получение объекта Cursor, включающего всю информаию о контакте
    // с указанным идентификатором
    public Cursor getOneContact(long id) {
        return database.query("contacts", null, "_id=" + id, null, null, null,
                null);
    }
 
    // удаление контакта, указанного именем в формате String
    public void deleteContact(long id) {
        open(); // открыть базу данных
        database.delete("contacts", "_id=" + id, null);
        close(); // закрыть базу данных
    }
 
    private class DatabaseOpenHelper extends SQLiteOpenHelper {
        // конструктор
        public DatabaseOpenHelper(Context context, String name,
                CursorFactory factory, int version) {
            super(context, name, factory, version);
        }
 
        // создание таблицы контактов в созданной базе данных
        @Override
        public void onCreate(SQLiteDatabase db) {
            // запрос на создание новой таблицы именованных контактов
            String createQuery = "CREATE TABLE contacts"
                    + "(_id integer primary key autoincrement,"
                    + "name TEXT, email TEXT, phone TEXT,"
                    + "street TEXT, city TEXT);";
 
            db.execSQL(createQuery); // выполнение запроса
        }
 
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        }
    }
}
Например есть приложение с БД, где хранятся контакты, и допустим у пользователей уже установлено приложение, для того чтобы добавить новое поле, то необходимо использовать метод onUpgrade.

Внизу этот метод есть, он генерируется атоматически, что в нём необходимо писать, если я добавляю новое поле (например newContact.put("other", other) ?
Java
1
2
3
@Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2016, 15:13     Update базы SQLiteDatabase
Посмотрите здесь:

не удаляется запись с базы Android
Android Вывод из базы данных
Передача SQLiteDatabase из namespace Android
Android Шифрование базы данных
Выборка из базы Android
Базы данных в андроиде Android
Android Update Android Studio 1.0
Android SQLiteDatabase, составление запроса для сортировки типа дерево
SQLiteDatabase как обновить таблицы? Android
Android Работа с SQLiteDatabase
SQlite Insert, delete, update Android
Android Update Google Play Services

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 18:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru