ORM Android Lucas Aquiles
Roteiro <ul><li>Introdução
SQLiteDatabase
ORM
ORMlite </li><ul><li>dependencias (ormlite-core.jar, ormlite-android.jar)
configuração
Annotations
Annotations da JPA </li></ul><li>OrmLiteSqliteOpenHelper
Criar e Deletar tabelas
ORMLiteBase...
DAO<?,ID>
Aplicação de Exemplo </li></ul>
Introdução
SQLiteDatabase <ul><li>Utilizada para gerenciar banco de dados SQLite
oferece metodos para criar, apagar e executar comandos SQL
Realiza tarefas comuns em gerenciamento de banco de dados relacional
Armazenado em:  </li><ul><li>/data/data/<package_name>/databases </li></ul></ul>
ORM <ul><li>Permite interagir de forma orientada a objetos com um banco de dados relacional
Cada classe representa uma tabela no banco de dados
Cada atributo dessa classe representa os campos da tablea
Cada objeto instanciado representa uma linha que pode ser inserida na tabela </li></ul>
ORM <ul><li>Frameworks ORM mais conhecidos:
Java </li><ul><li>Hibernate
Upcoming SlideShare
Loading in …5
×

Orm android

4,044 views
3,890 views

Published on

Apresentação sobre o uso de ORM, mas especificamente do ORMlite, no desenvolvimento de aplicações para Android.

Published in: Technology
4 Comments
3 Likes
Statistics
Notes
  • @RenatoSousa5 Opa Lucas, já consegui resolver, o problema é por que estava usando o setlistadapter passando como contexto a aplicação(getApplicationContext()) e não a referêncai da própria activity na chamada do método setListAdapter.

    Quanto ao ItemClicklistener, também ahvia esquecido de referenciar que a própria classe implementava o listener.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Lucas, Tenho algumas dúvidas. Criei uma activity herdando de OrmLiteBaseListActivity, mas tem dois problemas.

    1. A lista fica com a fonte do caractere dos itens transparente. Está construidno certo, já que na lista posso ver que já dois itens e quando clico encima de qualquer um deles, o texto do item fica viśivel.

    2. Além de usar a lista como filha da classe OrmLiteBaseListActivity eu preciso implementar a interface OnItemClicklistener, sobrecarregando o método onClickItem, porém ao clicar em qualquer item, o método nunca é chamado.


    Eu consultei um pouco da documentação mas achei muito vaga principalmente nessa parte de widgets, se você tiver algum link ou artigo sobre, pode me passar, por favor.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • gustavobite, vc pode fazer o clone do projeto por aqui https://github.com/lucasaquiles/projetoORM
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Lucas, você tem o exemplo pra disponibilizar?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
4,044
On SlideShare
0
From Embeds
0
Number of Embeds
865
Actions
Shares
0
Downloads
75
Comments
4
Likes
3
Embeds 0
No embeds

No notes for slide

Orm android

  1. 1. ORM Android Lucas Aquiles
  2. 2. Roteiro <ul><li>Introdução
  3. 3. SQLiteDatabase
  4. 4. ORM
  5. 5. ORMlite </li><ul><li>dependencias (ormlite-core.jar, ormlite-android.jar)
  6. 6. configuração
  7. 7. Annotations
  8. 8. Annotations da JPA </li></ul><li>OrmLiteSqliteOpenHelper
  9. 9. Criar e Deletar tabelas
  10. 10. ORMLiteBase...
  11. 11. DAO<?,ID>
  12. 12. Aplicação de Exemplo </li></ul>
  13. 13. Introdução
  14. 14. SQLiteDatabase <ul><li>Utilizada para gerenciar banco de dados SQLite
  15. 15. oferece metodos para criar, apagar e executar comandos SQL
  16. 16. Realiza tarefas comuns em gerenciamento de banco de dados relacional
  17. 17. Armazenado em: </li><ul><li>/data/data/<package_name>/databases </li></ul></ul>
  18. 18. ORM <ul><li>Permite interagir de forma orientada a objetos com um banco de dados relacional
  19. 19. Cada classe representa uma tabela no banco de dados
  20. 20. Cada atributo dessa classe representa os campos da tablea
  21. 21. Cada objeto instanciado representa uma linha que pode ser inserida na tabela </li></ul>
  22. 22. ORM <ul><li>Frameworks ORM mais conhecidos:
  23. 23. Java </li><ul><li>Hibernate
  24. 24. http://www.hibernate.org/
  25. 25. TopLink http://www.oracle.com/technetwork/middleware/toplink/index-085257.html </li></ul></ul>
  26. 26. ORMlite <ul><li>“ fornece algumas simples e leves funcionalidade para persistir objetos Java para bancos de dados SQL, evitando a complexidade e a sobrecarga de mais pacotes padrão ORM. ”
  27. 27. http://ormlite.com/ </li></ul>
  28. 28. ORMLite <ul><li>Suporte nativo a chamadas para APIs de banco de dados SQLite do Android
  29. 29. Permite o uso de Annotations da JPA, além das próprias annotations do ORMlite para mapear as classes
  30. 30. Permite relalizar relacionamento entre as classes
  31. 31. Construir querys simples e complexas
  32. 32. Uso de transactions </li></ul>
  33. 33. ORMLite <ul><li>Annotations da JPA </li></ul>
  34. 34. ORMLite <ul><li>Annotations do ORMlite </li></ul>
  35. 35. ORMlite <ul><li>Dependências </li><ul><li>ormlite-android-4.22.jar
  36. 36. ormlite-core-4.22.jar </li></ul><li>Disponível no http://sourceforge.net/projects/ormlite/files/releases/com/j256/ormlite/ </li></ul>
  37. 37. ORMlite <ul><li>Configuração </li><ul><li>Adicionar os jars do orm-lite-core.xxx.jar e orm-lite-android.xxx.jar no buildpath da aplicação
  38. 38. Criar uma classe que extenda de OrmLiteSqliteOpenHelper </li><ul><li>Semelhante ao SQLOpenHelper
  39. 39. Sobrescrever os métodos onCreate, onUpdate e dentro desses métodos é criada ou atualizada as tabelas
  40. 40. E passar um Context no construtor da classe </li></ul></ul></ul>
  41. 41. ORMLite <ul><li>Dependências </li></ul>
  42. 42. ORMLite <ul><li>Annotations do ORMlite </li><ul><li>@DatabaseTable
  43. 43. @DatabaseField </li><ul><li>Atributos </li><ul><li>ColumnName
  44. 44. DefaultValue
  45. 45. width
  46. 46. CanBeNull
  47. 47. Id
  48. 48. GeneratedId
  49. 49. foreign
  50. 50. foreignAutoRefresh </li></ul></ul></ul></ul>
  51. 51. ORMLite <ul><li>Annotations da JPA </li><ul><li>@Entity
  52. 52. @Id
  53. 53. @GeneratedValue
  54. 54. @Column
  55. 55. Relacionamentos </li><ul><li>@OneToOne
  56. 56. @ManyToOne </li></ul><li>Obs: você precisa adicionar o javax.persistence_xxx.jar no buildpath da aplicação </li></ul></ul>
  57. 57. ORMlite <ul><li>OrmLiteSqliteOpenHelper </li><ul><li>Classe que cria e atualiza o banco de dados quando a aplicação é instalada </li><ul><li>onCreate(SQLiteDatabase sqliteDatabase, ConnectionSource
  58. 58. connectionSource)
  59. 59. onUpgrade(SQLiteDatabase database, ConnectionSource
  60. 60. connectionSource, int oldVersion, int newVersion) </li></ul><li>Prover classes DAOs que podem ser usadas por outras classes
  61. 61. Bem semelhante ao SQLiteOpenHelper, só que sem os comandos SQL </li></ul></ul>
  62. 62. ORMLite <ul><li>Criar e deletar tabelas </li><ul><li>no método onCreate da classe que extende ORMLiteSQLiteOpenHelper </li><ul><li>TableUtils.createTable(connectionSource, Usuario.class, true); </li></ul><li>no onUpdate </li><ul><li>TableUtils.dropTable(connectionSource, Usuario.class, true); </li></ul></ul></ul>
  63. 63. ORMLite <ul><li>ORMLiteBase... </li><ul><ul><li>Activity
  64. 64. ListActivity
  65. 65. TabActivity
  66. 66. Service </li></ul><li>Essas classes fornecem o método getHelper() para fazer acesso auxiliar ao banco de dados </li></ul></ul>
  67. 67. ORMLite <ul><li>ORMLiteBase... </li></ul>
  68. 68. ORMlite <ul><li>Alternativas ao ORMLiteBaseActivity </li><ul><li>Fazendo chamadas pelo OpenHelperManager.getHelper(Context context, Class openHelperClass)
  69. 69. Que retorna um Helper e no final da operação deve ser chamado o método OpenHelperManager.release() </li></ul></ul>
  70. 70. ORMLite <ul><li>DAO<?,ID> </li><ul><li>Cada DAO tem dois parâmetros: uma é a entidade e a outra é a coluna ID usada pra especificar uma linha da tabela
  71. 71. Criado através do DaoManager </li></ul></ul>
  72. 72. ORMLite <ul><li>DAO<?,ID> </li><ul><li>alguns métodos do DAO </li><ul><li>queryForId(Id id)
  73. 73. QueryForAll()
  74. 74. create(T data)
  75. 75. update(T data)
  76. 76. delete(T data)
  77. 77. queryRaw(String query)
  78. 78. executeRaw(String statement)
  79. 79. CountOf() </li></ul></ul></ul>
  80. 80. Aplicação de exemplo <ul><li>Cadastro de produtos e categorias
  81. 81. Um produto tem uma categoria e uma categoria tem vários produtos </li></ul>

×