Для создания базы данных приложения на Android, вы в основном будете использовать один из следующих методов:
1. SQLite: Это встроенная легковесная база данных, которая поддерживается Android. Для создания базы данных SQLite вы:
- Создаете подкласс `SQLiteOpenHelper` и реализуете методы `onCreate()` и `onUpdate()` для управления созданием базы данных и ее версиями.
- Используете классы `SQLiteDatabase`, `Cursor`, `ContentValues` для выполнения операций с базой данных, таких как вставка, удаление, обновление и запрос данных.
Пример кода в Android:
```java
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "example.db";
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS contacts (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, phone_number TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS contacts");
onCreate(db);
}
}
```
2. Room: Это более совершенная объектно-реляционная абстракция поверх SQLite, предоставляемая библиотекой Android Architecture Components. Room обеспечивает абстракцию слоя данных и работает с LiveData и RxJava для обеспечения реактивных запросов данных.
Для начала работы с Room, вам необходимо:
- Определить Entity классы, которые представляют таблицы в вашей базе данных.
- Создать DAO (Data Access Objects) с аннотированными методами для работы с базой данных.
- Определить абстрактный класс Database, который расширяет RoomDatabase и предоставляет инстанс вашей базы данных.
Пример кода с использованием Room:
```java
@Entity
public class Contact {
@PrimaryKey(autoGenerate = true)
public int id;
public String name;
public String phoneNumber;
}
@Dao
public interface ContactDao {
@Query("SELECT * FROM Contact")
List<Contact> getAll();
@Insert
void insertAll(Contact... contacts);
@Delete
void delete(Contact contact);
}
@Database(entities = {Contact.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract ContactDao contactDao();
}
```
3. Другие варианты: Вы также можете использовать сторонние библиотеки и фреймворки для работы с базами данных, например, Realm, Firebase Realtime Database, Couchbase Lite и другие.
Не забывайте, что при работе с базами данных важно обеспечить безопасность данных и корректное управление ресурсами, например, закрывать соединения с базой данных и управлять версиями базы данных для обработки обновлений приложения.