Рубрики
Без рубрики

Sugar ORM: Более простой способ работы с базами данных SQLite в Android.

Если бы вы уже некоторое время работали с базой данных Android SQLite, вы бы заметили… С тегами android, java, производительность.

Если бы вы уже некоторое время работали с базой данных Android SQLite, вы бы кое-что заметили: ее настройка требует значительного времени и большого количества шаблонного кода.

Я недавно обнаружил Сахарный ОРМ , потрясающая библиотека, которая делает работу с базой данных SQLite очень простой и менее трудоемкой.

В случае, если вы еще не знали, ORM (Объектно-реляционный картограф) позволяет вам представлять ваши данные в виде объектов, а затем сохранять эти объекты в реляционной базе данных, автоматически обрабатывая преобразование данных для вас.

Чтобы установить Sugar ORM через gradle, просто добавьте эту строку в зависимости от gradle на уровне модуля и синхронизируйте свой проект:

compile 'com.github.satyan:sugar:1.5'

Текущей версией на момент написания этой статьи является версия 1.5.

Sugar ORM требует минимальной настройки вашего файла манифеста. Вы должны указать Используйте приложение в качестве класса приложения, изменив атрибут android name в теге приложения. Вам также необходимо включить некоторые метаданные о вашей базе данных, такие как ваше имя базы данных , версия , журнал запросов и имя пакета домена . Ваш файл манифеста должен выглядеть примерно так:

 
        
            
                
                
            
        
        
        
        
        
    

При использовании ORM sugar все модели или классы данных, которые вы хотите сохранить, должны расширять SugarRecord, а также иметь, по крайней мере, пустой конструктор по умолчанию, например:

import com.orm.SugarRecord;

public class Developer extends SugarRecord{
    private String firstname;
    private String lastname;
    private String favouriteLanguage;

    public Developer(){

    }

    public Developer(String firstname, String lastname, String favouriteLanguage){
        this.firstname = firstname;
        this.lastname = lastname;
        this.favouriteLanguage = favouriteLanguage;
    }

    public String getFirstname() {
        return firstname;
    }

    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }

    public String getLastname() {
        return lastname;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname;
    }

    public String getFavouriteLanguage() {
        return favouriteLanguage;
    }

    public void setFavouriteLanguage(String favouriteLanguage) {
        this.favouriteLanguage = favouriteLanguage;
    }
}

Как только все настроено, мы можем приступить к выполнению операций над нашей моделью.

Вставка новой записи

public class MainActivity extends AppCompatActivity {

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

        Developer developer = new Developer("Kwabena", "Berko", "JavaScript");
        developer.save();
    }
}

При вставке новой записи Sugar ORM автоматически добавляет для вас поле идентификатора с автоматическим увеличением.

Выбор существующей записи по ее идентификатору

 Developer developer = Developer.findById(Developer.class, 1); // 1 is the record's id.
 Log.v("RESULTS", developer.getId() + 
                ", " + developer.getFirstname() +
                ", " + developer.getLastname() +
                ", " + developer.getFavouriteLanguage()
 );

Обновление существующей записи

Developer developer = Developer.findById(Developer.class, 1);
developer.setFavouriteLanguage("Golang");
developer.save();

Выбор всех записей

List developers = Developer.listAll(Developer.class);
for(Developer developer : developers){
    Log.v("RESULTS", developer.getId() +
            ", " + developer.getFirstname() +
            ", " + developer.getLastname() +
            ", " + developer.getFavouriteLanguage()
    );
}

Удаление существующей записи

Developer developer = Developer.findById(Developer.class, 1);
developer.delete();

Счастливого Кодирования!

Оригинал: “https://dev.to/kwabenberko/sugar-orm-an-easier-way-to-work-with-sqlite-databases-in-android-cpg”