O que acontece se o aluno não tiver nome? No banco de dados a gente falou que não pode ser NULL, mas isso acontece em tempo de execução e não testamos o nome na aplicação.
O que acontece se o aluno não tiver nome? No banco de dados a gente falou que não pode ser NULL, mas isso acontece em tempo de execução e não testamos o nome na aplicação.
Daniel!
Como assim, se o Aluno não tiver nome ? Se o Aluno estiver sem nome no banco no momento da exclusão não vai fazer diferença.
Para excluir, esta sendo excluído pelo id:
public void deleta(Aluno aluno) {
SQLiteDatabase db = getWritableDatabase();
String[] params = {aluno.getId().toString()};
db.delete("Alunos", "id = ?", params);
}
Abraço!
Hmm, pode ser falta de conhecimento meu em SQL, mas na hora de criar o banco fazemos assim:
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE Alunos (id INTEGER PRIMARY KEY, nome TEXT NOT NULL, endereco TEXT, telefone TEXT, site TEXT, nota REAL);";
db.execSQL(sql);
}
Esse TEXT NOT NULL impede que nome seja vazio? O que acontece ao enviar sem nada?
Daniel,
Se enviar sem o campo nome e não tratar no código, vai lançar uma exception e não vai deixar gravar.
Esse é o comportamento esperado.
Esta gravando sem o nome ?
Se você gravar um Aluno com nome NULL
, o SQLiteDatabase
vai printar uma exception, mas não vai quebrar a aplicação. É como se o próprio database fizesse um try...catch
dessa exception e só imprimisse no console.
Caso queira que a aplicação quebre ou você queira tratar a exception gerada, basta trocar o insert
(chamado no método insere
) pelo insertOrThrow
, que disparará uma exception se algo estiver errado.
Ah entendi, valeu!