Android хранение данных SQLite

База данных для Android SQLite

Данные всегда были самой важной частью любого мобильного приложения. Разработчикам нужно хранить значительные объемы данных в организованном порядке для того, чтобы их приложения, по-настоящему были ценными для своих пользователей.

В Android, вы можете хранить ваши данные, используя довольно много различных методов, как в активной памяти так и в файле. Многие приложения также имеют удаленные веб-службы, которые предоставляют данные о приложении. Android также поддерживает хранение данных в локальной базе данных, и операционная система обеспечивает хорошую инфраструктуру для хранения и извлечения данных. В большинстве случаев, самым простым способом для приобретения и сохранения пользовательских данных с помощью баз данных SQLite.

SQLite

SQLite является реляционной технологией базы данных, которая используется чаще всего, когда разработчику требуется встроенные базы данных в небольшой системе. SQLite входит в состав системы Android и может быть легко использована в вашем приложении Android. Для более подробной информации о SQLite, вы можете посетить сайт SQLite

Создать базу данных на Android

Для того, чтобы записать данные в базу данных, нам нужно в первую очередь создать базу данных. Чтобы создать базу данных в SQLite на Android, вы должны создать подкласс класса SQLiteOpenHelper. Этот класс предоставляет функциональные возможности для создания базы данных и вызывает функцию, которая может быть переопределена производным классом. Конструктор SQLiteOpenHelper принимает четыре аргумента:

  1. Context — это контекст, который будет использоваться для создания базы данных.(Здесь вы можете пройти активности объекта.)
  2. Name — имя нового файла базы данных.
  3. Factory — курсор фабрика (обычно вы можете пройти это утратившим)
  4. Version — версия базы данных. Этот номер используется для определения, есть ли обновления для SQLite.

Ниже я создал класс MyDatabaseHelper , который собирает вывести из SQLiteOpenHelper :



public class MyDatabaseHelper extends SQLiteOpenHelper{
private static final String DATABASE_NAME="MyFriendsDatabase";
public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL("CREATE TABLE friends (_id INTEGER PRIMARY KEY AUTOINCRvarENT, name TEXT, phonenumber INTEGER);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS friends");
onCreate(db);
}
}


В конструкторе выше, мы передаем имя базы данных, которую мы хотим создать. Мы также переопределим следующие методы MyFriendsDatabase :

OnCreate

Этот метод вызывается, когда мы создаем базу данных. Он передаёт ссылки SQLiteDatabase , которые мы можем использовать для выполнения различных операций с базой данных. В этом методе мы используем функцию ExecSQL выполнить SQL запрос для создания таблицы, называемые friends , которая состоит из трех таблиц. В первой таблице (_id) требуется для создания уникального идентификатора для каждого столбца. Это необходимо в случае, если вы собираетесь использовать классы, такие как SimpleCursorAdapter (подробнее об этом позже в этой статье). Вторая и третья таблица (имя и номер телефона) являются поля данных, которые мы действительно хотим сохранить.

onUpgrade

Этот метод вызывается всякий раз, когда база данных будет обновлена. В этом методе, SQLiteDatabase и количество oldVersion и newVersion номер передается.

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

Добавление значений в базе данных

После создания базы данных, теперь давайте посмотрим, как мы можем добавить значения в базу данных. Мы собираемся использовать функции вставки класса  SQLiteDatabase  . Функция принимает три аргумента: имя таблицы, в которой значения, название одного из столбца таблицы, и ссылку на ContentValues

В классе MyDatabaseHelper ниже, мы напишем функции для вставки значений в базе данных.



public void addFriend(String name,int phonenumber)
{
ContentValues values=new ContentValues(2);
values.put("name", name);
values.put("phonenumber", phonenumber);
getWritableDatabase().insert("friends", "name", values);
}


В этой функции, мы берем в качестве входных аргументов name и phonenumber . Затем мы создаем новый объект ContentValues , мы ставим значения name и phonenumber в пределах этого нового объекта. Как только мы это сделали, мы получаем SQLiteDatabase ссылка для записи с помощью функции getWritableDatabase, которая является частью  SQLiteOpenHelper . Как только мы получим обращение SQLiteDatabase , мы называем функцию insert , которая принимает аргументы как имя таблицы, один из столбцов таблицы  ContentValues . Это позволит ввести новую строку в таблице базы данных frends .

Если я хочу использовать MyDatabaseHelper создать базу данных и добавить несколько значений данных, код будет выглядеть следующим образом:



public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
databaseHelper = new MyDatabaseHelper(this);
databaseHelper.addFriend("Abbas", 987);
databaseHelper.addFriend("John", 9877);
databaseHelper.addFriend("Michael", 8334);
}


Здесь, мы создали новый объект MyDatabaseHelper , а затем добавили несколько значений в таблице с помощью вызова функции addFriend .

Запуск сырья для запросов к базе данных

После того как мы добавили базу данных, сейчас вы увидите, как эти данные могут быть отображены. Есть два возможных способа получить данные .

Сырье запросов SQL

Мы можем непосредственно запускать запросы SQL, как SELECTto получения записей из базы данных.

Для запуска сырья запросов SQL, у вас есть функция rawQuery , которая принимает значение SQL в виде строки в качестве первого параметра и выбор аргументов в качестве второго параметра. Таким образом, если мы должны написать функцию в MyDatabaseHelper для получения всех записей из таблицы frends , это будет выглядеть следующим образом:



public Cursor getFriends()
{
Cursor cursor = getReadableDatabase().rawQuery("select * from friends", null);
return cursor;
}


Выполнять запросы к базе данных

Мы также можем выполнять запросы к базе данных, используя функцию insert в SQLiteDatabase . Функция insert позволяет запросить на одном строке, а также указать некоторые выбор и заказ критериям. Функция запроса занимает несколько аргументов: имя таблицы, имя столбца таблицы для получения, критерии отбора, аргументы для выбора критериев, группа пунктов, существующие пункты, порядок пунктов, и ограничения.

Если у нас есть, желание написать ту же функцию выше для получения всех frends , используйте запрос insert , он будет выглядеть следующим образом:



public Cursor getFriends()
{
Cursor cursor = getReadableDatabase().query("friends",
new String[] { "_id", "name", "phonenumber"},
null, null, null, null, null);
return cursor;
}


База данных Cursor

Результат запроса возвращается в виде объекта  cursor , который в основном помогает за счет кэширования результатов запроса в эффективный способ и предоставления функции для доступа к данным.

Если мы хотим получить данные всех друзей из cursor возвращается функцией GetFriends , мы бы написали следующий код:



Cursor AllFriends = databaseHelper.getFriends();
AllFriends.moveToFirst();
while (!AllFriends.isAfterLast()) {
String Name = AllFriends.getString(1);
int number = AllFriends.getInt(2);
AllFriends.moveToNext();
}


Курсор имеет такие функции, как moveToFirst , которая перемещает курсор на первую запись, moveToNext , которая перемещает курсор к следующей записи, а isAfterLast , которая проверяет, есть ли ли cursor, переместился, прошла последняя запись.

Курсор также имеет такие функции, как GetInt , GetString и т.д., которые принимают индекс столбца и возвращает значение.

Удаление значений из базы данных

Для удаления значения из базы данных, вы можете либо запустить запрос или сырьё используя функцию  delete  в  SQLiteDatabase . Функция delete принимает три аргумента: имя таблицы, где находится и где аргументы пункта. Функция  delete  все значения из базы данных выглядит следующим образом:



public void deleteAll()
{
getWritableDatabase().delete("friends", null, null);
}


Использование адаптер Cursor для отображения значений данных

Android предоставляет нам адаптеры Cursor, которые позволяют нам приложить сursor с ListView . Класс SimpleCursorAdapter является одним из этих адаптеров, и это весьма полезно. Если мы хотим показать список друзей в виде списка, код будет выглядеть следующим образом:



Cursor AllFriends = databaseHelper.getFriends();
String[] from = { "name", "phonenumber" };
int[] to = { android.R.id.text1, android.R.id.text2 };
ListAdapter adapter=new SimpleCursorAdapter(this,android.R.layout.simple_list_itvar_2,
AllFriends
, from,
to);
ListView myList=(ListView)findViewById(android.R.id.list);
myList.setAdapter(adapter);


Как только мы это сделаем, список друзей, появится на устройстве Android, как показано ниже.

База данных SQLite android

Заключение

Данные является наиболее важной частью конкурентной программы сегодня. Хорошо сложенное приложение должно хранить и извлекать данные эффективно и с легкостью, так что бы оно могло нормально функционировать для пользователя. Android предоставляет несколько вариантов с хорошей поддержкой для хранения данных в базе данных вашего приложения Android. Он обеспечивает все функциональные возможности для создания и обновления баз данных SQLite и таблиц базы данных. Максимально используйте его при разработке вашего следующего приложения Android!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


+ 1 = 10

Можно использовать следующие HTML -теги и атрибуты: <a href= http://pixelcom.crimea.ua/"" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>