Статьи

Пример использования БД SQLite для Android

Из этого туториала вы узнаете, как начать использовать SQLite в качестве метода хранения для приложений Android. Это часть 12 из серии руководств Саи Гиты по Android для разработчиков.

Существует 4 способа хранения данных на платформе Android:


  • 1.     Предпочтения
  • 2.     База данных SQLite
  • 3.     Файлы
  • 4.     Сеть
Несколько слов о каждом из них, а затем я перейду к примеру, который показывает, как работать с БД SQLite, который поставляется вместе с платформой Android.


Предпочтения

В основном используется для хранения пользовательских настроек для одного приложения или между приложениями для мобильного телефона. Обычно это пары имя-значение, доступные контексту.


Базы данных —


Android поддерживает создание баз данных на основе базы данных SQLite.
Каждая база данных является частной для приложений, которые ее создают


Файлы —

Файлы могут храниться непосредственно на мобильном устройстве или на расширенном носителе. По умолчанию другие приложения не могут получить к нему доступ.


Сеть —

Данные также могут храниться и извлекаться из сети в зависимости от доступности.


Если приложение хочет хранить и извлекать данные для собственного использования, без необходимости совместного использования данных между приложениями, оно может получить прямой доступ к БД SQLite. Нет необходимости в поставщике контента. В предыдущем посте мы видели, как использовать контент-провайдеров .


В этом примере мы сделаем следующее:

1.    
Создайте базу данных (обычно одноразовое действие)

2.    
Создайте таблицу (обычно одноразовое действие)

3.    
Вставьте значения в таблицу

4.    
Получить значения из таблицы

5.    
Показать полученные значения в виде списка

6.    
Удалите все записи из таблицы перед закрытием соединения с базой данных.


Шаг 1: Создайте базу данных:


   sampleDB =  this.openOrCreateDatabase(SAMPLE_DB_NAME, MODE_PRIVATE, null);

Откроется база данных, определенная в константе
SAMPLE_DB_NAME
, если она уже существует. В противном случае он создает базу данных и открывает ее. Второй параметр — это режим работы:
MODE_PRIVATE,
означающий, что он доступен только для этого контекста. Другие режимы и MODE_WORLD_WRITABLE.
MODE_WORLD_READABLE


Шаг 2: Создать таблицу:


sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " +
                        SAMPLE_TABLE_NAME +
                        " (LastName VARCHAR, FirstName VARCHAR," +
                        " Country VARCHAR, Age INT(3));");

Шаг 3: Вставьте значения в таблицу:


sampleDB.execSQL("INSERT INTO " +
                        SAMPLE_TABLE_NAME +
                        " Values ('Makam','Sai Geetha','India',25);");

Шаг 4: Получить значения


Cursor c = sampleDB.rawQuery("SELECT FirstName, Age FROM " +
                        SAMPLE_TABLE_NAME +
                        " where Age > 10 LIMIT 5", null);
           
      if (c != null ) {
            if  (c.moveToFirst()) {
                  do {
String firstName = c.getString(c.getColumnIndex("FirstName"));
                  int age = c.getInt(c.getColumnIndex("Age"));
                  results.add("" + firstName + ",Age: " + age);
                  }while (c.moveToNext());
            }
       }

Шаг 5: Показать значения в виде списка

           

       this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,results));

Оператор отображает его в виде списка, поскольку класс расширяет
ListActivity
.


Шаг 6: Удалить значения из таблицы в последней части блока try


finally {
            if (sampleDB != null)
                  sampleDB.execSQL("DELETE FROM " + SAMPLE_TABLE_NAME);
                  sampleDB.close();
        }

Работать с БД SQLite так же просто, как в Android. Не отличается от настольного приложения. Однако существуют различные перегруженные методы
query (),
предоставляемые классом SQLIteDatabase, которые можно использовать более оптимально вместо
execSQL
.


Полный код для этого примера можно скачать здесь .

Источник блога : http://saigeethamn.blogspot.com/2009/10/android-developer-tutorial-part-12.html