Baixe o app para aproveitar ainda mais
Prévia do material em texto
ANDROID CRUD NA PRÁTICA PROF. DRECO 2022.2 1 CRUD – Parte 02a 2 3. O BANCO DE DADOS E SUAS NUANCES Este é o processo em que vamos garantir a criação, conexão e execução de comandos no BD. Utilizaremos o SQLite Pontos importantes: Criação da classe DbAmigosHelper em JAVA, que será responsável por gerenciar a criação do nosso banco de dados e as alterações de versões do SQLite Criação da classe DbAmigosGateway em JAVA, que será responsável por estabelecer a conexão de client com o banco de dados Criação da classe DbAmigos em JAVA, que será responsável por gerenciar o objeto Amigo no nosso projeto. Criação da classe DbAmigosDAO, que será responsável por fazer acesso aos dados – Data Acess Object Vamos lá! Mãos na massa! 3 Agora, vamos criar a classe DbAmigosHelper Função: gerenciar a criação do nosso banco de dados e as alterações de versões no SQLite Ficará assim - Parte 1: import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DbAmigosHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "Amigos.db"; private static final int DATABASE_VERSION = 1; private final String CREATE_TABLE = "CREATE TABLE Amigos (ID INTEGER PRIMARY KEY AUTOINCREMENT, Nome TEXT NOT NULL, Celular TEXT NOT NULL, Status INTEGER NOT NULL);"; Mão-na-massa 01 4 Ficará assim - Parte 2: public DbAmigosHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } Mão-na-massa 01 5 Agora, vamos criar a classe DbAmigosGateway Função: estabelecer a conexão de client com o banco de dados Ficará assim - Parte 1: import android.content.Context; import android.database.sqlite.SQLiteDatabase; public class DbAmigosGateway { private static DbAmigosGateway gw; private SQLiteDatabase db; private DbAmigosGateway(Context ctx){ DbAmigosHelper helper = new DbAmigosHelper(ctx); db = helper.getWritableDatabase(); } Mão-na-massa 01 6 Ficará assim - Parte 2: public static DbAmigosGateway getInstance(Context ctx){ if(gw == null) gw = new DbAmigosGateway(ctx); return gw; } public SQLiteDatabase getDatabase(){ return this.db; } } Mão-na-massa 01 7 Agora, vamos criar a classe DbAmigo Função: gerenciar o objeto Amigo no nosso projeto: instanciamento, atributos e métodos. Ficará assim - Parte 1: public class DbAmigo implements Serializable { private int id; private String nome; private String celular; private int status; public DbAmigo(int id, String nome, String celular, int status){ this.id = id; this.nome = nome; this.celular = celular; this.status = status; } Mão-na-massa 01 8 Ficará assim - Parte 2: public int getId(){ return this.id; } public String getNome(){ return this.nome; } public String getCelular(){ return this.celular; } public int getStatus(){ return this.status; } Mão-na-massa 01 9 Ficará assim - Parte 3: @Override public boolean equals(Object o){ return this.id == ((DbAmigo)o).id; } @Override public int hashCode(){ return this.id; } } Mão-na-massa 01 10 Agora, vamos criar a classe DBAmigosDAO Função: acesso aos dados – Data Access Object. Ficará assim: import android.content.Context; public class DbAmigosDAO { private final String TABLE_AMIGOS = "Amigos"; private DbAmigosGateway gw; public DbAmigosDAO(Context ctx){ gw = DbAmigosGateway.getInstance(ctx); } } Mão-na-massa 01 11 CRUD – Parte 02b 12 4. O CADASTRO DE AMIGOS A partir deste processo, vamos garantir o popular da base de dados. Pontos importantes: Alteração da DbAmigosDAO, criando a função SALVAR. Aqui utilizaremos a ligação atual com o banco para realizar uma operação de insert a partir de parâmetros que forem recebidos. Alteração do botão GRAVAR. Aqui utilizaremos a DAO para executar o método SALVAR, passando os dados do amigo que será cadastrado. Vamos lá! Mãos na massa! 13 Agora, vamos criar o método SALVAR na classe DBAmigosDAO Este é o trecho do método: (...) public boolean salvar(String nome, String celular, int status){ ContentValues cv = new ContentValues(); cv.put("Nome", nome); cv.put("Celular", celular); cv.put("Status", status); return gw.getDatabase().insert(TABLE_AMIGOS, null, cv) > 0; } (...) Mão-na-massa 01 14 4. O CADASTRO DE AMIGOS Agora vamos alterar o botão SALVAR (btnSalvar), substituindo o código atual Este é o trecho do método - Parte 1: Button btnSalvar = (Button)findViewById(R.id.btnSalvar); btnSalvar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Sincronizando os campos com o contexto EditText edtNome = (EditText) findViewById (R.id.edtNome); EditText edtCelular = (EditText) findViewById (R.id.edtCelular); 15 4. O CADASTRO DE AMIGOS Este é o trecho do método - Parte 2: // Adaptando atributos String nome = edtNome.getText().toString(); String celular = edtCelular.getText().toString(); int situacao = 1; // Gravando no banco de dados DbAmigosDAO dao = new DbAmigosDAO(getBaseContext()); boolean sucesso = dao.salvar(nome, celular, situacao); 16 4. O CADASTRO DE AMIGOS Este é o trecho do método - Parte 3: if (sucesso) { Snackbar.make(view, "Dados de ["+nome+"] salvos com sucesso!", Snackbar.LENGTH_LONG) .setAction("Ação", null).show(); // Inicializando os campos do contexto edtNome.setText(""); edtCelular.setText(""); 17 4. O CADASTRO DE AMIGOS Este é o trecho do método - Parte 4: // Atualizando visibilidades findViewById(R.id.include_listagem).setVisibility(View.VISIBLE); findViewById(R.id.include_cadastro).setVisibility(View.INVISIBLE); findViewById(R.id.fab).setVisibility(View.VISIBLE); 18 4. O CADASTRO DE AMIGOS Este é o trecho do método - Parte 5: } else { Snackbar.make(view, "Erro ao salvar, consulte o log!", Snackbar.LENGTH_LONG) .setAction("Ação", null).show(); } } }); 19 PROF. DRECO 2022 SEM 2 20
Compartilhar