Retornar valor de um outro método

6 respostas
A

Boa tarde pessoal,

Eu to com um problema aqui, que pra vocês devem ser simples de se resolver. Tenho os seguintes códigos :
Código:

public String getCodigoValorAnterior() {  
                      
            StringBuilder builder = new StringBuilder();  
                              
            builder.append("SELECT coluna");  
            builder.append(" FROM tabela");  
            builder.append(" WHERE coluna = ?");  
                      
            Object[] parametros = new Object[] { codigo };  
            int[] tipos = new int[] { Types.INTEGER };  
                      
            Object codigoValorAnterior = getJdbcTemplate().query(builder.toString(), parametros,  
                                    tipos, new PrimeiraColuna());  
                      
            if (codigoValorAnterior == null){  
                    return "";  
            }  
                      
            return codigoValorAnterior.toString();  
    }

Nessa classe eu faço uma busca no banco de dados onde ele me retorna o valor de uma tabela de lá. Já nessa parte do código :
Código:

public String getCodigoValor () {  
                      
                    Integer codigoValor = null;  
                      
                    if (variavel == null){  
                            return null;  
                    }else if (variavel.equals("Dado1")){  
                            codigoValor = 1;  
                    }else if (variavel.equals("Dado2")){  
                            codigoValor = 2;  
                    }else if (variavel.equals("Dado3")){  
                            codigoValor = 3;  
                    }else if (variavel.equals("Dado4")){  
                            codigoValor = 4;  
                    }else if (variavel.equals("Dado5")){  
                            codigoValor = 5;  
                    }else if (variavel.equals("Dado6")){  
                            codigoValor = 6;  
                    }else if (variavel.equals("Dado7")){  
                            codigoValor = 7;  
                    }   
                      
                    return codigoValor.toString();  
            }

Eu pego o dado que o usuário quer alterar e converto para o código que irá pro banco de dados. Ate aqui tudo bem, a minha dúvida vem agora, se o usuário não digitar nada eu teria que retornar e manter o valor que já esta contido na tabela no banco de dados, então eu fiz isso aqui, mas não esta dando certo… Na tabela no banco de dados quando eu atualizo o campo fica (null).
Código:

public String getValor () {  
                      
            if (variavel == null){  
                    return getCodigoValorAnterior ();  
            }  
                    return getCodigoValor ();  
    }

vocês poderiam me falar o porque de não dar certo isso aqui que eu fiz ?
valeu
Abraços

6 Respostas

isaiaspf

AleZ,

Tá muito complicado de entender esse seu código e o que você quer como resultado.
Tenta explicar melhor a sua rotina e o problema que está acontecendo.
Se anexar todo código fica mais fácil pra identificar o problema.

Abraço.

bruno_7317

Tá difícil de entender mesmo, umas variáveis surgindo no meio do código… :roll:

A

o problema deve estar no vampo variavel porque não vejo ele receber valor nenhum

A

Fala pessoal,

Então esse ai não é o codigo completo, mas é onde eu to tendo problemas, vou tentar explicar o que acontece aqui, o usuário tem uma planilha onde ele coloca os dados que ele quer alterar, nessa planilha tem algumas colunas, onde ele só irá preencher o que deseja mudar, as colunas que ficarem em branco o meu código deverá ler e manter o dado que já estiver no banco, se o usuário não digitar nada eu tenho que retornar e manter o que já existe. Essa parte que eu postei esta lendo o valor no banco de dados, e esta lendo o valor da planilha e a última parte eu queria que me retornasse o valor para atualizar no banco, se o valor fosse nulo(Planilha em branco) teria que me retornar o valor do banco, mas se estivesse preenchido me voltasse o códigoValor.

Não sei se vcs conseguiram entender agora…
Mas vcs tem alguma ideia de como eu faço isso ? Pq erro na verdade não da, ele só atualiza o banco e o campo que estava com um dado ficará vazio.

Vlw pela atenção.

bruno_7317

Deixa eu ver se eu entendi:

1 - O sistema preenche a planilha com os dados do banco;

2 - O usuário altera de nenhum a todos os dados;

3 - Os dados alterados você atualiza no banco.

Seu problema é que os dados não alterados estão sendo alterados para ‘null’.

Se for isso mesmo, tente testar seu método ‘getCodigoValor’, pois ele não tem um ‘else’ e pode estar retornando ‘null’.

A

Fala Bruno !
Fmz velho ?

Então velho eu consegui resolver aqui por causa desse 'else' que vc pediu pra eu testar, mas eu nem usei ele eu fiquei pensando o que ele tava retornando ai eu vi o meu erro... Antes o código era assim:
public String getCodigoValor () {    
                    
                Integer codigoValor = null;    
                    
                if (variavel == null){    
                        return null;    
                }else if (variavel.equals("Dado1")){    
                        codigoValor = 1;    
                }else if (variavel.equals("Dado2")){    
                        codigoValor = 2;    
                }else if (variavel.equals("Dado3")){    
                        codigoValor = 3;    
                }else if (variavel.equals("Dado4")){    
                        codigoValor = 4;    
                }else if (variavel.equals("Dado5")){    
                        codigoValor = 5;    
                }else if (variavel.equals("Dado6")){    
                        codigoValor = 6;    
                }else if (variavel.equals("Dado7")){    
                        codigoValor = 7;    
                }     
                    
                return codigoValor.toString();    
        }

Assim se a váriavel na planilha fosse null ele iria me retornar null, e não era isso que eu queria.. Eu queria que ele me retornasse o valor do banco de dados, então eu fiz assim:

public String getCodigoValor () {    
                    
                Integer codigoValor = null;    
                    
                if (variavel == null){    
                        return getCodigoValorAnterior();    
                }else if (variavel.equals("Dado1")){    
                        codigoValor = 1;    
                }else if (variavel.equals("Dado2")){    
                        codigoValor = 2;    
                }else if (variavel.equals("Dado3")){    
                        codigoValor = 3;    
                }else if (variavel.equals("Dado4")){    
                        codigoValor = 4;    
                }else if (variavel.equals("Dado5")){    
                        codigoValor = 5;    
                }else if (variavel.equals("Dado6")){    
                        codigoValor = 6;    
                }else if (variavel.equals("Dado7")){    
                        codigoValor = 7;    
                }     
                    
                return codigoValor.toString();    
        }

Assim desse jeito se o campo na planilha ficasse em branco, o sistema vai me retornar o valor que esta no banco de dados. Aqui deu certo, mas eu sou iniciante ainda, vc acha que isso pode dar algum erro no futuro ?

Vlw
Abraços

Criado 29 de julho de 2011
Ultima resposta 1 de ago. de 2011
Respostas 6
Participantes 4