Bom dia!
Estou dando uma lida de como criar repositório para lidar com as instruções SQL.
Pelo que li, isto facilita bastante a organização e a flexibilidade do sistema.
Alguém teria algum exemplo, artigo ou tutorial de como criar?
Estou desenvolvendo o meu sistema da seguinte forma, porém não estou achando muito flexível.
Utilizo o padrão MVC.
Exemplo : Classe Dao
package br.com.mylims.model;
import br.com.mylims.bean.Usuario;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class UsuarioDao extends SQLiteOpenHelper{
private static final String NOME_BANCO = "teste_usu";
private static final String TABELA = "USUARIO";
private static final int VERSION = 1;
private static final String[] COLS = {"CDUSUARIO","NMUSUARIO","EMAIL","LOGIN","SENHALOGIN","SERVIDORSMTP","SERVIDORPOP3","SENHAEMAIL","EMAILSERVER"};
private static final String CATEGORIA = "coleta";
public UsuarioDao(Context context) {
super(context, NOME_BANCO, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE " + TABELA + " (CDUSUARIO INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " +
"NMUSUARIO VARCHAR(250) NOT NULL, " +
"EMAIL VARCHAR(250) NOT NULL, " +
"LOGIN VARCHAR(250) NOT NULL, " +
"SENHALOGIN VARCHAR(250) NOT NULL, " +
"SERVIDORSMTP VARCHAR(250) NULL, " +
"SERVIDORPOP3 VARCHAR(250) NULL, " +
"SENHAEMAIL VARCHAR(250) NULL, " +
"EMAILSERVER VARCHAR(250) NULL);";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVErsion, int newVersion) {
db.execSQL("TABLE IF EXISTS " + UsuarioDao.TABELA);
this.onCreate(db);
}
public boolean inserir(Usuario usuario){
try {
ContentValues valores = new ContentValues();
/**SETA OS VALORES NAS COLUNAS DO BANCO**/
valores.put("NMUSUARIO", usuario.getNome());
valores.put("EMAIL", usuario.getEmail());
valores.put("SENHAEMAIL", usuario.getSenhaEmail());
valores.put("LOGIN", usuario.getLogin());
valores.put("SENHALOGIN", usuario.getSenha());
valores.put("SERVIDORSMTP", usuario.getServidorSMTP());
valores.put("SERVIDORPOP3", usuario.getServidorPOP3());
valores.put("SENHAEMAIL", usuario.getSenhaEmail());
valores.put("EMAILSERVER", usuario.getEmailServer());
//ABRE O BANCO PARA O MODO ESCRITA
getWritableDatabase().insert(TABELA, null, valores);
Log.i(CATEGORIA, "LOG: dados cadastrados com sucesso!");
return true;
} catch (Exception e) {
Log.e(CATEGORIA, "erro metodo inserir usuario" + e);
return false;
}
}
public boolean isUsuario(String login, String senha){
try {
String[] args = new String[]{login, senha};
Cursor c = getWritableDatabase().query(TABELA, COLS,"LOGIN = ? AND SENHALOGIN = ?", args, null, null, null);
if (c.getCount() > 0) {
Log.i(CATEGORIA, "OK: usuário correto!");
return true;
} else {
Log.i(CATEGORIA, "MENSAGEM DE LOG: não existe usuários cadastrado com estes dados!" + c);
return false;
}
} catch (Exception e) {
return false;
}
}
}