Advertisement
Guest User

Untitled

a guest
Jul 24th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.67 KB | None | 0 0
  1. package br.com.caelum.cadastro.dao;
  2.  
  3. import android.content.ContentValues;
  4. import android.content.Context;
  5. import android.database.Cursor;
  6. import android.database.sqlite.SQLiteDatabase;
  7. import android.database.sqlite.SQLiteOpenHelper;
  8.  
  9. import java.lang.reflect.Field;
  10. import java.util.ArrayList;
  11. import java.util.List;
  12.  
  13. import br.com.caelum.cadastro.modelo.Aluno;
  14.  
  15. public class AlunoDAO extends SQLiteOpenHelper {
  16.  
  17. private static final int VERSAO = 1;
  18. private static final String TABELA = "Alunos";
  19. private static final String DATABASE = "CadastroCaelum";
  20.  
  21. public AlunoDAO(Context context) {
  22. super(context, DATABASE, null, VERSAO);
  23. }
  24.  
  25. @Override
  26. public void onCreate(SQLiteDatabase database) {
  27. String ddl = "CREATE TABLE " + TABELA
  28. + " (id INTEGER PRIMARY KEY, "
  29. + " nome TEXT NOT NULL, "
  30. + " telefone TEXT, "
  31. + " endereco TEXT, "
  32. + " site TEXT, "
  33. + " nota REAL);";
  34. database.execSQL(ddl);
  35. }
  36.  
  37. @Override
  38. public void onUpgrade(SQLiteDatabase database,
  39. int versaoAntiga, int versaoNova) {
  40. String sql = "DROP TABLE IF EXISTS " + TABELA;
  41. database.execSQL(sql);
  42. onCreate(database);
  43. }
  44.  
  45. public void insere(Aluno aluno) {
  46. ContentValues values = new ContentValues();
  47.  
  48. values.put("nome", aluno.getNome());
  49. values.put("telefone", aluno.getTelefone());
  50. values.put("endereco", aluno.getEndereco());
  51. values.put("site", aluno.getSite());
  52. values.put("nota", aluno.getNota());
  53.  
  54. getWritableDatabase().insert(TABELA, null, values);
  55. }
  56.  
  57. public List<Aluno> getLista() {
  58. List<Aluno> alunos = new ArrayList<Aluno>();
  59. SQLiteDatabase db = getReadableDatabase();
  60. Cursor c = db.rawQuery("SELECT * FROM " + TABELA + ";", null);
  61. while (c.moveToNext()) {
  62. Aluno aluno = new Aluno();
  63. // aluno.setId(c.getLong(c.getColumnIndex("id")));
  64. // aluno.setNome(c.getString(c.getColumnIndex("nome")));
  65. // aluno.setTelefone(c.getString(c.getColumnIndex("telefone")));
  66. // aluno.setEndereco(c.getString(c.getColumnIndex("endereco")));
  67. // aluno.setSite(c.getString(c.getColumnIndex("site")));
  68. // aluno.setNota(c.getDouble(c.getColumnIndex("nota")));
  69. for (String field : c.getColumnNames()) {
  70. set(aluno, field, c);
  71. }
  72.  
  73. alunos.add(aluno);
  74. }
  75. c.close();
  76. return alunos;
  77. }
  78.  
  79. private boolean set(Object object, String fieldName, Cursor c) {
  80. Class<?> clazz = object.getClass();
  81. while (clazz != null) {
  82. try {
  83. Field field = clazz.getDeclaredField(fieldName);
  84. field.setAccessible(true);
  85. if(field.getType().isAssignableFrom(Integer.class)) {
  86. field.set(object, c.getInt(c.getColumnIndex(fieldName)));
  87. } else if(field.getType().isAssignableFrom(Long.class)) {
  88. field.set(object, c.getLong(c.getColumnIndex(fieldName)));
  89. } else if(field.getType().isAssignableFrom(String.class)) {
  90. field.set(object, c.getString(c.getColumnIndex(fieldName)));
  91. } else if(field.getType().isAssignableFrom(Double.class)) {
  92. field.set(object, c.getDouble(c.getColumnIndex(fieldName)));
  93. }
  94. return true;
  95. } catch (NoSuchFieldException e) {
  96. clazz = clazz.getSuperclass();
  97. } catch (Exception e) {
  98. throw new IllegalStateException(e);
  99. }
  100. }
  101. return false;
  102. }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement