Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 101
1

Update базы SQLiteDatabase

14.05.2016, 15:13. Просмотров 348. Ответов 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) {
        }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2016, 15:13
Ответы с готовыми решениями:

Работа с SQLiteDatabase
Здравствуйте, пишу кликер с использованием базы данных, в которой содержится информация о монстре....

Передача SQLiteDatabase из namespace
Подскажите насколько я понимаю, чтение БД из другого namaspace невозможно? Пробывал читать...

SQLiteDatabase как обновить таблицы?
Привет, снова я )) Данные в базу закачиваются из других классов, то есть всё работает, но только...

SQLiteDatabase, составление запроса для сортировки типа дерево
здравствуйте, есть ListView который выгружает из базы позиции. как сделать так чтобы после каждого...

Update базы
Добрый день. Помогите разобраться! Имею заполненный DataSet, к базе данных привязан адаптер...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2016, 15:13

Update базы по двум полям
В общем такой вопрос по мимо программной вставки данных в таблицу, у меня должно производиться...

Множественный update базы данных
Доброе утро, Форумчане Есть база данных, где в таблице необходимо обновить более 10 000...

Обновление базы данных dataadapter.Update
знаю что таких тем было много но ни на одной из них я не нашел ответа на свой вопрос ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru