Image Image Image Image Image
Scroll to Top

Topo

13

nov
2011

Sem Comentários

Em Blog

Por Allison

H4Android – primeiro contato com o framework

Em 13, nov 2011 | Sem Comentários | Em Blog | Por Allison

Desenvolvi um framework para orm no Android (é eu sei já existem alguns muito bons por sinal, so que no meus projetos eu buscava soluções o menos intrusivas possível e terminei chegando à conclusão de que era melhor eu desenvolver minha propria solução.).

Com o h4Android você não precisa extender suas classes de nenhuma interface, nem seguir “receita de bolo”, você simplemente cria suas classes no estilo POJO e usa as anotações.

Vamos ao tutorial:

Objetivo

Neste tutorial tenho o intuito de apresentar o usuário a uma simples utilização do framework para criar uma base de forma dinâmica baseado no modelo mapeado, bem como um pequeno exemplo de persistência baseado num objeto pertencente à uma classe mapeada.

Crie um novo projeto Android no Eclipseb

  • Informe o nome do projeto como testh4a.
  • Informe a versão que deseja utilizar Android 2.2.
  • Informe o nome do pacote br.org.h4a.test, neste ponto você já pode finalizar a criação do projeto;

Acesse a página do projeto no em http://code.google.com/p/h4android/, vá na aba Downloads e baixe o arquivo h4android_2_2-0.0.0.1.jar. Salve numa pasta de sua preferência.

De posse da biblioteca h4android_2_2 selecione seu projeto clique no botão direito do mouse e selecione a opção propriedades, selecione a opção Java Build Path, na aba Libraries clique em Add External JARs… localize a biblioteca h4android_2_2, em seguida clique no botão OK.

Bem neste ponto sua aplicação já está apta a utilizar o framework. Vamos lá então:

Crie um pacote qualquer no seu projeto para inserir as classes que devem ser mapeadas como entidade no banco de dados, eu criei um pacote com o seguinte nome br.org.h4a.test.model.

Dentro deste pacote vamos uma classe para utilizar no nosso exemplo. Crie a classe Contato com o seguinte conteúdo

package br.org.h4a.test.model;

public class Contato {

    private Integer id;
    private Integer version;
    private String nome;
    private String telefone;
    private String celular;
    private String email;

}

Assim que concluirmos o mapeamento desta classe não esqueça de criar os métodos get e set de cada atributo.

Vamos ao mapeamento então:

package br.org.h4a.test.model;

@Entity
@Table("TBL_CONTATO_")
public class Contato {

    @Id
    private Integer id;
    @Version
    private Integer version;
    @Column(name = "_NOME", length = 50, allowNulls = false, typeColumn = TypeColumn.VARCHAR)
    private String nome;
    @Column(name = "_TELEFONE", length = 14, allowNulls = false, typeColumn = TypeColumn.VARCHAR)
    private String telefone;
    @Column(name = "_CELULAR", length = 14, typeColumn = TypeColumn.VARCHAR)
    private String celular;
    @Column(name = "_EMAIL")
    private String email;

}

A explicação detalhada de cada anotação esta no documento na página do projeto.

Bem, agora basta criar os métodos get e set dos atributos.

Agora vamos por o h4Android para funcionar, iremos fazer uma chamada simples para inserir um objeto do tipo Contato.

Abra a classe Testh4aActivity esta é a activity principal da aplicação (aliás a única!!). Logo após a linha que contem o código setContentView, vamos começar os testes do framework.

Digite as seguintes linhas:

        //**********************************************************************
        PersistenceManagerA22 pm = null;
        List<String> classes = new ArrayList<String>();
        classes.add("br.org.h4a.test.model.Contato");
        try {
            pm = new PersistenceManagerA22(
            /*contexto para conexão*/         this,
            /*nome para a base de dados*/     "base_da_aplicacao_testh4a.db",
            /*versao da base de dados*/       1000,
            /*lista string com as entidades*/ classes ,
            /*modo de conexão do android*/    Context.MODE_PRIVATE,
            /*modo de conexao do framework*/  ModelBeavior.RENEW,
            /*habilita o log do framework*/   1
                                          );
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        //**********************************************************************

Bem a partir deste ponto podemos simplesmente criar um objeto do tipo Contato setar algumas informações e usar o método insert do PersistenceManagerA22 pm.

Inclua em seguida o seguinte trecho de código:

        Contato contato = new Contato();
        contato.setVersion(1000);
        contato.setNome("Carlos Timoshenko");
        contato.setTelefone("85 0000 0000");
        contato.setEmail("carlostimoshenkorodrigueslopes@gmail.com");

        // Neste ponto quando o framework tentar inserir o objeto contato, será
        // detectado que a base ainda nao existe e h4android ira gerar o ddl da
        // base e gerar a mesma do "zero".
        // Como o log esta ativado poderemos ver o feedback do framework criando
        // as tabelas e inserindo um objeto do tipo Contato
        pm.insert(contato);
        pm.close();

Bem agora é só por a aplicação para rodar e acompanhar o LogCat no Eclipse mostrando as mensagens do h4Android.

Quando você por sua aplicação para rodar o h4android tentará persistir um objeto do tipo Contato, como a base de dados não existe então o framework gera o DDL do seu banco e cria para você, além de inserir o objeto de forma transparente.

Você pode copiar esta banco de dados SQLite que foi criado no emulador para o seu pc e acessar diretamente pelo console usando o cliente do próprio SQLite o sqlite3 e dar um “select * from TBL_CONTATO_;” para confirmar o objeto inserido.

Bem espero que esta ferramenta lhes seja útil, adianto que a mesma se encontra em uso pois atende ao basico de um crud, porém ja estou desenvolvendo novas funcionalidades. Coloco-em à disposição para eventuais dúvidas.

Boa tarde.

Fonte: Timoshenko/PortalAndroid

Redes Sociais

Tags | , , ,

Enviar um Comentário