Eu faço o seguinte:
- Tenho a classe SQLiteHelper que herda de SQLiteOpenHelper()
- Tenho a classe Database que herda da minha classe SQLiteHelper. <<- Aqui eu crio um array de String[] contendo toda a estrutura do meu banco de dados. Preferi assim pra deixar centrado a informação do Db. Essa classe quem controla a criação e atualização do meu DB.
- Minha classe DAO herdo da minha classe Database, pra dai sim poder fazer a manipulação das informações.
--
Em 24 de maio de 2012 20:59, Benicio <benicio.heladio@gmail.com> escreveu:
Boa noite car*s!
* Cinenário:
- Para cada tabela do banco existe uma DAO ela é responsável por criar
a tabela (onCreate) no banco e retornar os dados desta tabela.
Ex:
- PessoaDAO
- ClienteDAO
- FuncionarioDAO
- PessoaClienteDAO -----> relacionamento entre Pessoa e Cliente
Hoje me deparei com o seguinte problema:
- Na PessoaDao Fiz uma consulta utilizando um JOIN para a tabela
PESSOACLIENTE.. Ao executar a consulta foi me retornado um exception
informando
que a tabela não existia;
- Descobri que este erro ocorria pq as tabelas estavam sendo criadas
em arquivos diferentes ( ao chamar a super (SQLiteOpenHelper) eu
passava o nome da tabela para cada
DAO). Então alterei para que todas as tabelas passassem como
parâmetro o nome do banco ao invés do nome da tabela (conforme
abaixo):
public RotaVendedorDao(Activity activity) {
super(activity, BANCO, null, VERSAO);
// TODO Auto-generated constructor stub
}
Porém esta alteração fez com que apenas a primeira classe DAO
instanciada na aplicação tivess o método onCreate executado e as
outras DAO não.
Encontrei a solução abaixo para este problema, mas gostaria de saber
se alguém conhece alguma outra alternativa.
- Ter uma unica classe com o método onCreate onde este método cria
todas as tabelas do banco e as DAO apenas fazem a manipulação dos
dados ?
Qualquer informação é bem vinda.
Desde já muito obrigado pela atenção!
Analista-Programador






0 comentários:
Postar um comentário