Database Schema

Android: Gerenciando banco de dados com Sugar ORM

O Sugar é uma biblioteca para Android que torna o gerenciamento do banco de dados SQLite mais simples, sendo uma técnica ORM (object-relational mapping), ajuda a reduzir a impedância da programação orientada aos objetos utilizando banco de dados relacionais. As tabelas são representadas através de classes e os registros de cada tabela são representados como instâncias das classes correspondentes.

Após testar outras soluções como como Realm e ORMLite, achei bem interessante e simples a proposta do Sugar, tendo como principais objetivos:

  • Criar e gerenciar conexão com banco de dados;
  • Simples e intuitiva API para consultas;
  • Operações de CRUD simplificadas;

Instalação

Android Studio

Com o Android Studio, a melhor forma de fazer isso é incluir a dependência no arquivo build.gradle:

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

E então sincronizar para finalizar a inclusão da biblioteca no seu aplicativo.

Eclipse

Caso você utilize o Eclipse como IDE de desenvolvimento, é possível incluir em seu projeto como uma biblioteca o próprio código fonte (disponível no diretório library) ou mesmo o arquivo jar.

Configuração

Tudo que você precisa fazer é especificar a classe SugarApp (que é uma extensão da Application) no arquivo AndroidManifest.xml. Basta incluir o atributo android:name na tag application.

<application android:label="@string/app_name" android:icon="@drawable/icon"
android:name="com.orm.SugarApp">
...
</application>

Entidades

Todas as entidades que você pretende persistir no banco de dados devem estender da classe SugarRecord, que provê os principais métodos para realização de CRUD. Além disso, o construtor padrão da classe deve ser mantido, por exemplo:

public class Person extends SugarRecord<Person> {
	String name;
	String email;

	public Person() {
	}

	public Person(String name, String email) {
		this.name = name;
		this.email = email;
	}
}

Consultas

Para realizar operações básicas de CRUD, existem disponíveis métodos como save(), delete() e findById(..) que tornam o trabalho muito simples.

Salvar

Person person = new Person("Paulo", "paulo@exemplo.com.br");
person.save();

Ler

Person person = Person.findById(Person.class, 1);

Atualizar

Person person = Person.findById(Person.class, 1);
person.name = "Paulo";
person.email = "paulo@exemplo.com";
person.save();

Excluir

Person person = Person.findById(Person.class, 1);
person.delete();

Conclusão

Pronto, é isso! Essa é a forma mais básica de utilização da biblioteca Sugar ORM mas outras opções de configuração e utilização estão disponíveis na página oficial ou no GitHub.

3 Comentários

  1. jiselli Responder

    É possível fazer chaves compostas com sugar ORM, algum material pra indicar, desde já obrigada!

  2. Caio Vinícius Responder

    Boa noite, estou usando o Sugar em um projeto, onde cadastro pacientes, medicamentos e etc, dentre esses cadastros tenho usuários, gostaria de saber como faço pra criar uma instância do banco para cada usuário.

    • Paulo Rodrigues Responder

      Bom dia Caio, pode me esclarecer o que exatamente você quer dizer com “instância para cada usuário”? Você quer dizer que cada usuário do seu aplicativo terá como se fosse um banco de dados separado? Com seus pacientes, medicamentos e etc?

Deixe uma resposta