Pessoal,
Estou finalizando um sistema que foi arquitetado utilizando mvc.
Criei o meu banco fora da aplicação e estou tendo dificuldade em envia-lo para o celular.
Segundo conselhos, é melhor criar o banco na mão e carrega-lo na execução da aplicação.
As dúvidas são o seguinte.
Possuo N classes Dao, preciso de um SQLiteOpenHelper para cada classe Dao?
Como criar uma única classe que cria o banco e as tabelas assim que o sistema é acessado?
Exemplo.
A minha primeira tela é um login e senha.
Preciso que este banco seja criado antes que o usuário execute esta tela.
Exemplo de como estão as minhas classes Dao.
package br.com.mylims.model;
import br.com.mylims.bean.Empresa;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class EmpresaDao extends SQLiteOpenHelper {
private static final String CATEGORIA = "coleta";
private static final String NOME_BANCO = "mylimsColeta";
private static final int VERSAO = 1;
public EmpresaDao(Context context) {
super(context, NOME_BANCO, null, VERSAO);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
public boolean salvarDadosEmpresa(Empresa empresa){
try {
ContentValues valores = new ContentValues();
valores.put("IDAUXEMPRESA", empresa.getIdAuxEmpresa());
valores.put("NMFANTASIA", empresa.getNomeFantasia());
valores.put("NMCONTATO", empresa.getNomeContato());
valores.put("SOBRENOME", empresa.getSobrenome());
valores.put("NMAREACONTATO", empresa.getNomeAreaContato());
valores.put("DDD", empresa.getDdd());
valores.put("FONE", empresa.getFone());
valores.put("RAMAL", empresa.getRamal());
valores.put("DDDCELULAR", empresa.getDddCelular());
valores.put("CELULAR", empresa.getCelular());
long sql = getWritableDatabase().insert("EMPRESA", null, valores);
if (sql > 0) {
Log.i(CATEGORIA, "LOG: Dados EMPRESA cadastrado com sucesso!");
return true;
} else {
Log.i(CATEGORIA, "LOG: Não foi possível cadastrar os dados EMPRESA!");
return false;
}
} catch (SQLException e) {
//
Log.i(CATEGORIA, "LOG: Erro dados EMPRESA!");
return false;
}
}
public boolean altualizaDadosEmpresa(Empresa empresa, String idEmpresa){
try {
String[] args = new String[]{idEmpresa};
ContentValues valores = new ContentValues();
valores.put("IDAUXEMPRESA", empresa.getIdAuxEmpresa());
valores.put("NMFANTASIA", empresa.getNomeFantasia());
valores.put("NMCONTATO", empresa.getNomeContato());
valores.put("SOBRENOME", empresa.getSobrenome());
valores.put("NMAREACONTATO", empresa.getNomeAreaContato());
valores.put("DDD", empresa.getDdd());
valores.put("FONE", empresa.getFone());
valores.put("RAMAL", empresa.getRamal());
valores.put("DDDCELULAR", empresa.getDddCelular());
valores.put("CELULAR", empresa.getCelular());
int sql = getWritableDatabase().update("EMPRESA", valores, "IDAUXEMPRESA = ?", args);
if (sql > 0) {
Log.i(CATEGORIA, "LOG: Dados EMPRESA cadastrado com sucesso!");
return true;
} else {
Log.i(CATEGORIA, "LOG: Não foi possível cadastrar os dados EMPRESA!");
return false;
}
} catch (SQLException e) {
//
Log.i(CATEGORIA, "LOG: Erro dados EMPRESA!");
return false;
}
}
public boolean salvaOuAtualizaEmpresa(Empresa empresa, String idEmpresa){
try {
String[] args = new String[]{idEmpresa};
Cursor c = getWritableDatabase().rawQuery("SELECT * FROM EMPRESA WHERE IDAUXEMPRESA = ?", args);
if (c.getCount() == 0) {
if (salvarDadosEmpresa(empresa)) {
Log.i(CATEGORIA, "LOG: Dados EMPRESA cadastrado com sucesso!");
return true;
} else {
Log.i(CATEGORIA, "LOG: Dados EMPRESA não pôde ser cadastrado!");
return false;
}
} else
{
if (altualizaDadosEmpresa(empresa, idEmpresa)) {
Log.i(CATEGORIA, "LOG: Dados EMPRESA atualizado com sucesso!");
return true;
} else {
Log.i(CATEGORIA, "LOG: Dados EMPRESA não pôde ser atulizado!");
return false;
}
}
} catch (SQLException e) {
Log.i(CATEGORIA, "LOG: erro SQLException." + e);
return false;
}
}
}