Top.Mail.Ru

10 примеров использования SQLite в Android: от простого к сложному

Погружаемся в мир SQLite на Android: практические примеры и советы

Привет, дорогие читатели! Если вы разработчик Android-приложений или только начинаете свой путь в этом увлекательном мире, то, вероятно, уже слышали о SQLite. Это легковесная, встроенная в Android база данных, которая позволяет хранить и управлять данными прямо на устройстве пользователя. В этой статье мы подробно рассмотрим, как использовать SQLite в Android, приведем множество примеров и полезных советов. Готовы? Тогда поехали!

Что такое SQLite и почему его стоит использовать?

SQLite — это небольшая, быстрая и надежная база данных, которая идеально подходит для мобильных приложений. Она не требует установки и может работать непосредственно из файла, что делает её отличным выбором для Android. Но почему именно SQLite? Давайте разберемся.

  • Легкость в использовании: SQLite проста в настройке и использовании, что позволяет разработчикам быстро начать работу с базами данных.
  • Отсутствие серверной части: Вам не нужно беспокоиться о настройке сервера или подключении к удаленной базе данных.
  • Поддержка SQL: SQLite поддерживает большинство стандартных SQL-команд, что делает его мощным инструментом для работы с данными.

Теперь, когда мы поняли, почему SQLite так популярен, давайте перейдем к практическим примерам его использования на Android.

Настройка проекта для работы с SQLite

Перед тем как начать использовать SQLite, вам нужно создать проект в Android Studio. Если вы уже знакомы с основами Android-разработки, то этот шаг будет для вас простым. Создайте новый проект, выберите пустую активность и дайте ему имя, например, SQLiteExample.

После создания проекта вам нужно будет добавить необходимые зависимости. SQLite уже встроен в Android, поэтому вам не нужно добавлять дополнительные библиотеки. Однако, если вы планируете использовать Room (обертку над SQLite), вам нужно будет добавить соответствующие зависимости в файл build.gradle вашего проекта:

implementation 'androidx.room:room-runtime:2.4.0'
annotationProcessor 'androidx.room:room-compiler:2.4.0'

Теперь проект готов, и мы можем перейти к созданию базы данных.

Создание базы данных и таблицы

Для начала нам нужно создать класс, который будет отвечать за создание и управление нашей базой данных. Обычно это делается с помощью наследования от класса SQLiteOpenHelper. Давайте создадим класс DatabaseHelper, который будет управлять нашей базой данных.

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) {
        String createTable = "CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)";
        db.execSQL(createTable);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS users");
        onCreate(db);
    }
}

В этом классе мы определили имя базы данных и ее версию. В методе onCreate мы создаем таблицу users с тремя колонками: id, name и age.

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

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

public void addUser(String name, int age) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put("name", name);
    values.put("age", age);
    db.insert("users", null, values);
    db.close();
}

С помощью класса ContentValues мы можем удобно добавлять значения в таблицу. Не забудьте закрыть базу данных после завершения операции!

Чтение данных из базы

Теперь давайте создадим метод, который будет извлекать данные из нашей таблицы. Мы создадим метод getAllUsers, который будет возвращать список всех пользователей.

public List getAllUsers() {
    List userList = new ArrayList();
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.query("users", null, null, null, null, null, null);

    if (cursor.moveToFirst()) {
        do {
            User user = new User();
            user.setId(cursor.getInt(cursor.getColumnIndex("id")));
            user.setName(cursor.getString(cursor.getColumnIndex("name")));
            user.setAge(cursor.getInt(cursor.getColumnIndex("age")));
            userList.add(user);
        } while (cursor.moveToNext());
    }
    cursor.close();
    db.close();
    return userList;
}

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

Обновление и удаление данных

Теперь, когда мы умеем добавлять и извлекать данные, давайте рассмотрим, как обновлять и удалять записи. Мы создадим два метода: updateUser и deleteUser.

public void updateUser(User user) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put("name", user.getName());
    values.put("age", user.getAge());
    db.update("users", values, "id = ?", new String[]{String.valueOf(user.getId())});
    db.close();
}

public void deleteUser(int userId) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete("users", "id = ?", new String[]{String.valueOf(userId)});
    db.close();
}

Метод updateUser обновляет данные пользователя по его идентификатору, а метод deleteUser удаляет запись из таблицы.

Пример использования базы данных в активности

Теперь давайте посмотрим, как мы можем использовать наш DatabaseHelper в активности. Создадим простую активность, в которой мы будем добавлять пользователей и отображать их в списке.

public class MainActivity extends AppCompatActivity {
    private DatabaseHelper dbHelper;
    private ListView listView;
    private ArrayAdapter adapter;
    private List userList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        dbHelper = new DatabaseHelper(this);
        listView = findViewById(R.id.listView);
        userList = dbHelper.getAllUsers();
        adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, userList);
        listView.setAdapter(adapter);

        // Добавление пользователя
        dbHelper.addUser("Иван", 25);
        dbHelper.addUser("Анна", 30);
        userList.clear();
        userList.addAll(dbHelper.getAllUsers());
        adapter.notifyDataSetChanged();
    }
}

В этом примере мы создаем экземпляр DatabaseHelper, извлекаем всех пользователей и отображаем их в списке. Также мы добавляем новых пользователей и обновляем список.

Заключение

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

В следующей статье мы рассмотрим более продвинутые темы, такие как использование Room для работы с SQLite и управление сложными запросами. Оставайтесь с нами и продолжайте изучать мир Android-разработки!

Если у вас есть вопросы или вы хотите поделиться своим опытом работы с SQLite, оставляйте комментарии ниже. Удачи в ваших проектах!

By

Related Post

Яндекс.Метрика Анализ сайта Top.Mail.Ru
Не копируйте текст!
Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.
Принять
Отказаться
Политика конфиденциальности