Duvida de iniciante sobre camada modelo [RESOLVIDO]

7 respostas
java
AlessandroGois

Bom dia,

A camada modelo tem suas variaveis, gets e sets.
public class Teste {

private Integer codigo;
private String descricao;

public String getDescricao() {
    return descricao;
}

public void setDescricao(String descricao) {
    this.descricao = descricao;
}

public Integer getCodigo() {
    return codigo;
}

public void setCodigo(Integer codigo) {
    this.codigo = codigo;
}

}

Num determinado momento eu adiciono registros a este modelo:

{

xteste = new Teste();

xteste.setCodigo(1);

xteste.setDescricao(a);

xteste = new Teste();

xteste.setCodigo(2);

xteste.setDescricao(b);

}

A dúvida é: Num local aonde não está instanciada esta classe teste, como eu faço pra pegar todos os valores que inseri nela?
O retorno esperado seria
1, a
2, b
e por ai em diante.

Se eu chamo direto: xteste.getCodigo() ele está retornando nulo, acho que está desponterado no final ou começo do modelo.

Podem me ajudar, por favor?

7 Respostas

igomes

Quando você possui uma instância, você possui um espaço na memória alocado para seus atributos.
Você pegar sem instanciar sem local algum não da, ele já pode vir instanciado, que vc popula esse objeto igual voce fez, e ai em uma camada dao, você recebe como parametro (Teste teste), e da teste.getCodigo().
Ai sim ele virá com o valor

AlessandroGois

Entendi,

É que o sistema que estou fazendo é meio para muitos acessos por isso estava pensando em fugir do dao de qq maneira, quanto menos requisições de banco seria melhor.

Mas valeu a dica, vou fazer assim se não tem jeito :frowning:

AlessandroGois

O que eu vou fazer pode vir a ser moralmente questionável haha mas vou percorrer a tabela que tem os itens que eu quero e pegar de lá, assim não preciso ir no db

R

Se seu banco for um Oracle e sua aplicação precisa de muitas requisições, aconselho você a aprender a usar a capacidade máxima do banco, porque se você deixar tudo nas mãos da aplicação, dependendo da quantidade de requisições, o seu servidor pode até parar.

AlessandroGois

Eu estou fazendo desktop inicialmente.
Na verdade a intenção é exatamente o contrário, descarregar tudo que puder pras máquinas client pra não sobrecarregar o servidor, assim o processamento de memoria fica distribuido nao centralizado.

No momento é postgre, mas pra frente troco pro oracle

R

Olá Alessandro, acredito que se a sua intenção é descarregar nas maquinas cliente para não sobrecarregar o servidor, vale estudar técnicas de cache em tecnologias client-side, como o javascript por exemplo (recomendo dar uma lida em AngularJS que é bem moderno). Agora pelo que vi em seus comentários você também queria entender melhor como obter informações mesmo sem ter uma instancia local da classe, certo ? Recomendo ler sobre o padrão Singleton (aqui um exemplo em Java: http://www.javaworld.com/article/2073352/core-java/simply-singleton.html ). Basicamente, ele permite você ter uma classe que é instanciada uma única vez e que utiliza a mesma instancia para todos aqueles que necessitarem. Porém isso não é um padrão que deva ser utilizado em classes modelo, apenas recomendo que leia pois ele tem muitas outras aplicações interessantes.

Outra coisa, se quiser ler sobre cache no lado server-side, recomendo ler um pouco sobre Node.js. Você poderia criar APIs RESTFul que devolvem as informações porém as mantem em cache, então não precisaria ir no banco a todo momento.

Abraço e sucesso!

AlessandroGois

Opa Ricardo, obrigado pelas dicas, vou ler sim!

Criado 15 de fevereiro de 2016
Ultima resposta 15 de fev. de 2016
Respostas 7
Participantes 4